header

content

Как средствами php удалить внутреннюю ссылку VK
vk (vk)
Как средствами php удалить внутреннюю ссылку VK

Подскажите как удалить и из текста:

"Какой то текст [club112773578|+ Подпишись] далее еще текст какой-то..."

средствами php [club112773578|+ Подпишись] вот эту ссылку? от [ и до ] включительно

************************************************************************************************************
Используйте регулярные выражения:
$text = "Какой то текст [club112773578|+ Подпишись] далее еще текст какой-то...";
$text = preg_replace('/\[(club|public|id)\d*\|.*\]/', '', $text);
//Удалить все в квадратных скобках:
//$text = preg_replace('/\[.*\]/', '', $text); 
echo $text; // Какой то текст далее еще текст какой-то...
************************************************************************************************************
там может быть club, public, id вот именно удаление начинается с [ заканчивается ]
************************************************************************************************************ 
$text = "Какой то текст [club112773578|+ Подпишись] далее еще текст какой-то...";
$text = preg_replace('/\[.*\|.*\]/', '', $text);
echo $text; // Какой то текст далее еще текст какой-то...
************************************************************************************************************ 
Удалить все ссылки с club, public, id:
$text = preg_replace('/\[(club|public|id)\d*\|.*\]/', '', $text);

Удалить весь текст в квадратных скобках:
$text = preg_replace('/\[.*\]/', '', $text);
Автопостинг в ВК в 2025 году. 3.Применение токенов
vk (vk)
Автопостинг в ВК в 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'];
?>

Автопостинг в ВК в 2025 году. 2.Получение токенов
vk (vk)
Автопостинг в ВК в 2025 году. 2.Получение токенов

1. Подготовка. На сервисе https://tonyxu-io.github.io/pkce-generator/ в первом окне сгенерировать Code Verifier по кнопке "Generate Code Verifier". На его основе создать Code Challenge во втором окне, нажав кнопку "Generate Code Challenge".
Сохранить оба кода для дальнейшего использования при получении токенов.

Снимок1.JPG
2. Подготовить параметры для авторизации:
https://id.vk.com/authorize?
response_type=code
&client_id=11111111
&scope=offline%20wall%20photos
&redirect_uri=https://site.ru
&state=XXXRandomZZZ1111111111111111XXXRandomZZZ
&code_challenge=6c7ZD9kujPJSeTMQ8LKzER1LUI1P6DFNHkINCJCtGrA
&code_challenge_method=S256

client_id - id приложения, полученный при его создании.
scope - разрешения для приложения. В примере из документации в качестве разделителя используется последовательность "%20"
redirect_uri - свой сайт, указанный в настройках приложения
state - Строка состояния в виде случайной строки, состоящей из символов: a-z, A-Z, 0-9, _, -, длиной не менее 32 символа.
code_challenge - полученная в первом пункте последовательность символов.

Собрать все это в одну строку и вставить в адресную строку браузера. Убедиться, что пользователь авторизован как администратор приложения в ВК. Отправить запрос.

3. Произойдет переход на ваш сайт с формированием в адресной строке ссылки такого содержания:
https://site.ru/?
code=vk2.много букв и цифр
&expires_in=600
&device_id=много букв и цифр
&state=XXXRandomZZZ1111111111111111XXXRandomZZZ
&ext_id=много букв и цифр
&type=code_v2

4. Получение Access Token
Формируем curl-запрос:

curl "https://id.vk.com/oauth2/auth" -d "
client_id=11111111
&grant_type=authorization_code
&code_verifier=S7yz7Uw_d4B68xGmpVLNqKSCHvGDL9YXuq6Nf1rEi4w
&device_id=много букв и цифр
&code=vk2.много букв и цифр
&redirect_uri=https://site.ru
&state=XXXRandomZZZ1111111111111111XXXRandomZZZ
"

client_id - id приложения, полученный при его создании. 
code_verifier - сгенерированная в первом пункте последовательность символов (не путать с code_challenge, используемым ранее.
device_id - параметр, полученный в пункте 3.
code - параметр, полученный в пункте 3.
state - параметр, полученный в пункте 3.

Объединить все в одну строку:
curl "https://id.vk.com/oauth2/auth" -d "client_id=11111111&grant_type=authorization_code&code_verifier=S7yz7Uw_d4B68xGmpVLNqKSCHvGDL9YXuq6Nf1rEi4w&device_id=много букв и цифр&code=vk2.много букв и цифр&redirect_uri=https://site.ru&state=XXXRandomZZZ1111111111111111XXXRandomZZZ"

и, используя командную строку Windows, отправить запрос.

Снимок1.JPG

В результате получим: 
access_token - персональный токен для работы с API.
refresh_token - для обновления access_token, после окончания срока его жизни.
expires_in:3600 - время жизни access_token
и другую полезную информацию
Автопостинг в ВК в 2025 году. 1.Создание приложения
vk (vk)
Автопостинг в ВК в 2025 году. 1.Создание приложения
1. Зарегистрироваться в сервисе https://id.vk.com/about/business/go. Подтвердить персональные данные. Получить права на управление доступами приложения.

2. Создать новое приложение.
Во вкладке "Приложение" указать базовый домен (site.ru) и Доверенный Redirect URL (https://site.ru). site.ru - свой сайт - источник экспортируемых статей.
Для дальнейшей интеграции потребуются id созданного приложения и Доверенный Redirect URL.

3. Во вкладке "Доступы" после подтверждения персональных данных необходимо выставить разрешения. Для новостей: стена, фотографии. Дальше на свое усмотрение.
Снимок1.JPG