Перейти к содержимому


Фотография

Как получить токен личного профиля?

Форум ZiSMO.biz
12
Сообщений в теме: 12

OFFLINE Отправлено

YOU-TOP
Активный
  • Онлайн:8д 19ч 18м
91

Годами делал это через https://vkserv.ru/api/tokenно сегодня вк его забанил. Имею в виду Kate Mobile.

Мне нужен токен с возможность рассылать сообщения. Другие варианты не работают.

 

Может кто еще знает какой сайт? За помощь скину 500 рублей.


Администрация форума не имеет отношения к пользователям форума и к публикуемой ими информации. Пользовательское соглашение
    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

ceg
Продвинутый
  • Онлайн:35д 15ч 36м
519

Напиши свой скрипт.
Пример:

здесь открываем окно авторизации и делаем редирект на созданную тобой страничку, например, vk/oauth_callback. $client_id, $client_secret пишем свои.

$code_verifier = bin2hex(random_bytes(32));
$code_challenge = rtrim(strtr(base64_encode(hash('sha256', $code_verifier, true)), '+/', '-_'), '=');
$state = bin2hex(random_bytes(32));
            
$_SESSION['vk_oauth_client_id'] = $client_id;
$_SESSION['vk_oauth_client_secret'] = $client_secret;
$_SESSION['vk_code_verifier'] = $code_verifier;
$_SESSION['vk_oauth_state'] = $state;
            
$redirect_uri = 'https://example.com/vk/oauth_callback';
            
$scope = 'wall photos video groups';
$auth_url = 'https://id.vk.ru/authorize?' . http_build_query([
 'client_id' => $client_id,
 'redirect_uri' => $redirect_uri,
 'response_type' => 'code',
 'scope' => $scope,
 'code_challenge' => $code_challenge,
 'code_challenge_method' => 'S256',
 'state' => $state,
]);
header('Location: ' . $auth_url);
exit();

на страничке vk/oauth_callback пишем обработку для получения токена

$code = $_GET['code'] ?? null;
$state = $_GET['state'] ?? null;
$device_id = $_GET['device_id'] ?? null;


if (!$code    !$state    !$device_id) {
        $error = 1; $errorText = 'Не удалось получить код авторизации от VK ID';
    } else {
        if (!isset($_SESSION['vk_oauth_state'])    $state !== $_SESSION['vk_oauth_state']) {
            $error = 1; $errorText = 'Несоответствие state (CSRF)';
        } else {
            $client_id = $_SESSION['vk_oauth_client_id'] ?? 0;
            $client_secret = $_SESSION['vk_oauth_client_secret'] ?? '';
            $code_verifier = $_SESSION['vk_code_verifier'] ?? '';
            unset($_SESSION['vk_oauth_client_id'], $_SESSION['vk_oauth_client_secret'], $_SESSION['vk_code_verifier'], $_SESSION['vk_oauth_state']);
            if (!$client_id    !$client_secret    !$code_verifier) {
                $error = 1; $errorText = 'Отсутствуют параметры в сессии';
            } else {
                $redirect_uri = 'https://example.com/vk/oauth_callback';
                $token_url = 'https://id.vk.ru/oauth2/auth';
                $params = [
                    'grant_type' => 'authorization_code',
                    'client_id' => $client_id,
                    'client_secret' => $client_secret,
                    'code' => $code,
                    'code_verifier' => $code_verifier,
                    'device_id' => $device_id,
                    'redirect_uri' => $redirect_uri,
                    'state' => $state,
                ];
                $ch = curl_init();
                curl_setopt_array($ch, [
                    CURLOPT_URL => $token_url,
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_POST => true,
                    CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
                    CURLOPT_POSTFIELDS => http_build_query($params),
                ]);
                $response = curl_exec($ch);
                $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                curl_close($ch);
                if ($httpCode !== 200) {
                    $error = 1; $errorText = 'Ошибка обмена кода на токены';
                } else {
                    $token_data = json_decode($response, true);
                    if (isset($token_data['access_token']) && isset($token_data['refresh_token'])) {
                        $access_token = $token_data['access_token'];
                        $refresh_token = $token_data['refresh_token'];
                    } else {
                        $error = 1; $errorText = 'В ответе нет access_token или refresh_token';
                    }
                }
            }
        }
    }

Сообщение отредактировал ceg: 04 08 2026 - 15:31

bd067630f5a7a5e5881ebff576d77937.png

    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

ceg
Продвинутый
  • Онлайн:35д 15ч 36м
519

Я смотрю zismo чуть очистил знаки. В строках между переменными добавить знак ИЛИ (по две вертикальные палки вместо слова ИЛИ): 

if (!$code ИЛИ !$state ИЛИ !$device_id)

 

 if (!$client_id ИЛИ !$client_secret ИЛИ !$code_verifier)

 

 


Сообщение отредактировал ceg: 04 08 2026 - 15:34

bd067630f5a7a5e5881ebff576d77937.png

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

YOU-TOP
Активный
  • Онлайн:8д 19ч 18м
91

 

Я смотрю zismo чуть очистил знаки. В строках между переменными добавить знак ИЛИ (по две вертикальные палки вместо слова ИЛИ): 

if (!$code ИЛИ !$state ИЛИ !$device_id)
 if (!$client_id ИЛИ !$client_secret ИЛИ !$code_verifier)

А вы сами то пробовали? Я попробовал. Токен получил но он только основную инфу отдает о страничке. Прав на сообщения он не дает а что бы давал надо что бы приложение вк прошло модерацию. Оно конечно же его не пройдет, ибо я не смогу придумать обоснование зачем мое приложение такие права хочет получать.


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

STRELOK
Постоянный
  • Онлайн:414д 12ч 58м
565

 

Напиши свой скрипт.
Пример:

здесь открываем окно авторизации и делаем редирект на созданную тобой страничку, например, vk/oauth_callback. $client_id, $client_secret пишем свои.

$code_verifier = bin2hex(random_bytes(32));
$code_challenge = rtrim(strtr(base64_encode(hash('sha256', $code_verifier, true)), '+/', '-_'), '=');
$state = bin2hex(random_bytes(32));
            
$_SESSION['vk_oauth_client_id'] = $client_id;
$_SESSION['vk_oauth_client_secret'] = $client_secret;
$_SESSION['vk_code_verifier'] = $code_verifier;
$_SESSION['vk_oauth_state'] = $state;
            
$redirect_uri = 'https://example.com/vk/oauth_callback';
            
$scope = 'wall photos video groups';
$auth_url = 'https://id.vk.ru/authorize?' . http_build_query([
 'client_id' => $client_id,
 'redirect_uri' => $redirect_uri,
 'response_type' => 'code',
 'scope' => $scope,
 'code_challenge' => $code_challenge,
 'code_challenge_method' => 'S256',
 'state' => $state,
]);
header('Location: ' . $auth_url);
exit();

на страничке vk/oauth_callback пишем обработку для получения токена

$code = $_GET['code'] ?? null;
$state = $_GET['state'] ?? null;
$device_id = $_GET['device_id'] ?? null;


if (!$code    !$state    !$device_id) {
        $error = 1; $errorText = 'Не удалось получить код авторизации от VK ID';
    } else {
        if (!isset($_SESSION['vk_oauth_state'])    $state !== $_SESSION['vk_oauth_state']) {
            $error = 1; $errorText = 'Несоответствие state (CSRF)';
        } else {
            $client_id = $_SESSION['vk_oauth_client_id'] ?? 0;
            $client_secret = $_SESSION['vk_oauth_client_secret'] ?? '';
            $code_verifier = $_SESSION['vk_code_verifier'] ?? '';
            unset($_SESSION['vk_oauth_client_id'], $_SESSION['vk_oauth_client_secret'], $_SESSION['vk_code_verifier'], $_SESSION['vk_oauth_state']);
            if (!$client_id    !$client_secret    !$code_verifier) {
                $error = 1; $errorText = 'Отсутствуют параметры в сессии';
            } else {
                $redirect_uri = 'https://example.com/vk/oauth_callback';
                $token_url = 'https://id.vk.ru/oauth2/auth';
                $params = [
                    'grant_type' => 'authorization_code',
                    'client_id' => $client_id,
                    'client_secret' => $client_secret,
                    'code' => $code,
                    'code_verifier' => $code_verifier,
                    'device_id' => $device_id,
                    'redirect_uri' => $redirect_uri,
                    'state' => $state,
                ];
                $ch = curl_init();
                curl_setopt_array($ch, [
                    CURLOPT_URL => $token_url,
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_POST => true,
                    CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'],
                    CURLOPT_POSTFIELDS => http_build_query($params),
                ]);
                $response = curl_exec($ch);
                $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                curl_close($ch);
                if ($httpCode !== 200) {
                    $error = 1; $errorText = 'Ошибка обмена кода на токены';
                } else {
                    $token_data = json_decode($response, true);
                    if (isset($token_data['access_token']) && isset($token_data['refresh_token'])) {
                        $access_token = $token_data['access_token'];
                        $refresh_token = $token_data['refresh_token'];
                    } else {
                        $error = 1; $errorText = 'В ответе нет access_token или refresh_token';
                    }
                }
            }
        }
    }

Эту мульку каждый школьник может сляпать, ты ему ид прилы дай с правами для получения да приватной чтобы не заэтсамое....


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

YOU-TOP
Активный
  • Онлайн:8д 19ч 18м
91

Эту мульку каждый школьник может сляпать, ты ему ид прилы дай с правами для получения да приватной чтобы не заэтсамое....

вот именно. а приложений я так понял с такими правами больше не осталось. эх печалька конечно. придется обратно на зеннопостер возвращаться.

 

Может кто то все же знает живое приложение? 5000 заплачу за ссылку.


Сообщение отредактировал YOU-TOP: 08 08 2026 - 16:53

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

STRELOK
Постоянный
  • Онлайн:414д 12ч 58м
565

вот именно. а приложений я так понял с такими правами больше не осталось. эх печалька конечно. придется обратно на зеннопостер возвращаться.

 

Может кто то все же знает живое приложение? 5000 заплачу за ссылку.

Ответ в ответе. На то она и приватная. Никто даже за 50000 не даст чтобы ее убивали. Делай свою


    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

sivcovs726
Активный
  • Онлайн:10д 15ч 32м
49

Del


Сообщение отредактировал sivcovs726: 08 08 2026 - 19:47

    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

ceg
Продвинутый
  • Онлайн:35д 15ч 36м
519

Эту мульку каждый школьник может сляпать, ты ему ид прилы дай с правами для получения да приватной чтобы не заэтсамое....

 

а здесь каждый выкладывает сообщения по мере своего опыта и возможностей. ID приложения с этими правами нужно получить самому либо с давно созданного приложения, либо покупать аккаунт со старым созданным приложением.

Я выложил кoд получения токена, а не софт, волшебным образом дающий всемогущие права, а человек с правами уже разберется. Скорее всего поможет старое созданное приложение. Конкретно я использую этот кoд получения токена для автопостинга, используя для API доступа старое созданное VK приложение - в новых VK приложениях даже параметры для функционала автопостинга под запретом.

 

Надеюсь автор найден итоговое решение, с VK API стало работать очень сложно


Сообщение отредактировал ceg: 10 08 2026 - 15:04

bd067630f5a7a5e5881ebff576d77937.png

    • -1
  • Наверх
  • Ответить

OFFLINE Отправлено

YOU-TOP
Активный
  • Онлайн:8д 19ч 18м
91

Нашел я новое приложение для получения токенов. По совету комментаторов не буду им делится. Тема не актуальна. 5000 то же)


    • 1
  • Наверх
  • Ответить

OFFLINE Отправлено

SuperAxe
Активный
  • Онлайн:9д 10ч 30м
9

Нашел я новое приложение для получения токенов. По совету комментаторов не буду им делится. Тема не актуальна. 5000 то же)

Через аки спамишь ? На что , если не секрет.


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

YOU-TOP
Активный
  • Онлайн:8д 19ч 18м
91

Через аки спамишь ? На что , если не секрет.

у меня свои услуги.


    • 0
  • Наверх
  • Ответить

OFFLINE Отправлено

SuperAxe
Активный
  • Онлайн:9д 10ч 30м
9

у меня свои услуги.

Какие?


    • 0
  • Наверх
  • Ответить



Напишите сообщение


  



1