header

Автопостинг в ВК в 2025 году. 3.Применение токенов

1. Создать текстовый файл для временного хранения получаемых от ВК данных в папке с исполняемыми скриптами автопостинга. К примеру vk_tmp.txt

2. При первом запуске выдаст ошибку о несовпадении ip-адреса, используемого при получении токена с текущим.
Необходимо выполнить рефреш и получить новый токен. Создать php файл следующего содержания:

<?php
$url = 'https://id.vk.com/oauth2/auth';
$data = [
'grant_type' => 'refresh_token',
'refresh_token' => 'vk2.много букв и цифр',
'client_id' => '11111111',
'device_id' => 'много букв и цифр',
'state' => 'XXXRandomZZZ1111111111111111XXXRandomZZZ',
'scope' => 'vkid.personal_info photos wall offline'
];

// Prepare POST data
$options = [
    'http' => [
        'method'  => 'POST',
        'header'  => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($data),
    ],
];

// Create stream context
$context  = stream_context_create($options);

// Perform POST request
$response = file_get_contents($url, false, $context);

file_put_contents(__DIR__ . '/vk_tmp.txt', print_r($response, true));
// Display the response
echo $response;
echo '<br>';
$array = json_decode($response, true);
print_r($array);
?>

Для формирования массива исходящих данных использовать параметры, полученные в результате curl-запроса при получении токена.
В результате получим обновленные токены с записью результата в созданный файл.

В дальнейшем перед запуском скрипта автопубликации с сайта в ВК будем брать информацию о рефреш-токене из временного файла, с его помощью получать новые актуальные токены, перезаписывать их во временный файл, полученный access_token использовать в скрипте.

<?
$tmp_access_data = file_get_contents(__DIR__ . '/vk_tmp.txt');

// json to array
$array_access_data = json_decode($tmp_access_data, true);

$refresh_token = $array_access_data['refresh_token'];

// Define the URL and data
$url = 'https://id.vk.com/oauth2/auth';
$data = [
'grant_type' => 'refresh_token',
'refresh_token' => $refresh_token,
'client_id' => '11111111',
'device_id' => 'много букв и цифр',
'state' => 'XXXRandomZZZ1111111111111111XXXRandomZZZ',
'scope' => 'vkid.personal_info photos wall offline'
];

// Prepare POST data
$options = [
    'http' => [
        'method'  => 'POST',
        'header'  => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($data),
    ],
];

// Create stream context
$context  = stream_context_create($options);

// Perform POST request
$response = file_get_contents($url, false, $context);

file_put_contents(__DIR__ . '/vk_tmp.txt', print_r($response, true));

// json to array
$array_access_data_new = json_decode($response, true);

$access_token = $array_access_data_new['access_token'];
?>

Возврат к списку