ВКонтакте Callback API

  1. Подключение Callback API ВКонтакте
    1. Версия API ВКонтакте
    2. Секретный ключ ВКонтакте
    3. SSL-сертификат
    4. Настройка через API
  2. Формат данных Callback API ВКонтакте
    1. Типы событий Callback API ВКонтакте
  3. Пример использования Callback API ВКонтакте
  4. Поддержка в SDK ВКонтакте


Callback API ВКонтакте — это инструмент для отслеживания активности пользователей в Вашем сообществе ВКонтакте. С его помощью Вы можете реализовать, например:

  • Бота для отправки мгновенных ответов на поступающие сообщения.
  • Систему автоматической модерации контента.
  • Сервис для сбора и обработки показателей вовлеченности аудитории.

Чтобы начать использовать Callback API ВКонтакте, подключите свой сервер в настройках сообщества («Управление сообществом» → «Настройки» → «Работа с API»). Выберите типы событий, данные о которых требуется получать, например, новые комментарии и новые фотографии.

Когда в сообществе произойдет событие выбранного типа, ВКонтакте отправит на Ваш сервер запрос с данными в формате JSON с основной информацией об объекте, вызвавшем событие (например, добавленный комментарий).

В ответ на каждое уведомление о событии Ваш сервер должен отправить строку "ok".

Вам больше не нужно регулярно повторять запросы к API, чтобы отслеживать обновления ВКонтакте — теперь Вы будете получать их мгновенно.

1. Подключение Callback API ВКонтакте

Для подключения Callback API ВКонтакте нужно открыть раздел «Управление сообществом» («Управление страницей», если у Вас публичная страница), перейти во вкладку «Работа с API».

Далее необходимо указать и подтвердить конечный адрес сервера, куда будут направлены все запросы. Вы можете подключить до 10 серверов для Callback API ВКонтакте, задать каждому из них отдельный набор событий и версию API.

После указания адреса сервера и нажатия на кнопку «подтвердить» на указанный Вами адрес отправится запрос с уведомлением типа "confirmation". Ваш сервер должен вернуть заданную строку.

Подключение ВКонтакте Callback API

После подтверждения адреса сервера Вам станут доступны настройки уведомлений.

Во вкладке «Запросы» Вы сможете видеть историю событий и содержимое запросов, отправленных на Ваш сервер.

Обратите внимание:
После получения уведомления Ваш сервер должен возвращать строку "ok" и статус HTTP 200. Если сервер несколько раз подряд вернет ошибку, Callback API временно перестанет отправлять на него уведомления.

Добавлять, удалять и редактировать сервера для Callback API Вы также можете с помощью методов секции groups.

1.1. Версия API ВКонтакте

В зависимости от указанной версии объекты в событиях будут иметь разный формат. Ознакомиться с отличиями версий можно на этой странице.

1.2. Секретный ключ API ВКонтакте

В поле «Секретный ключ» Вы можете указать произвольную строку, которая будет передаваться в уведомлении на Ваш сервер в поле secret.

1.3. SSL-сертификат

Чтобы гарантировать безопасность передачи данных, рекомендуется загрузить SSL-сертификат в настройках Callback API Вашего сообщества ВКонтакте.

Подробная информация о сертификате доступна на этой странице.

1.4. Настройка через API ВКонтакте

Вы можете управлять настройками Callback API ВКонтакте в Вашем сообществе не только в веб-интерфейсе, но и с помощью методов API:

2. Формат данных API ВКонтакте

Когда происходит событие, Вы получаете данные в JSON, имеющем следующую структуру:

{"type": <тип события>, "object": <объект, инициировавший событие>, "group_id": <ID сообщества, в котором произошло событие>}

Например:

{"type": "group_join", "object": {"user_id": 1, "join_type" : "approved"}, "group_id": 1}

2.1. Типы событий API ВКонтакте

Структура объекта в поле object зависит от типа уведомления. Полный список событий Вы найдёте на этой странице.

3. Пример использования API ВКонтакте

В примере ниже скрипт на PHP обрабатывает уведомления о новом сообщении и отправляет ответ его автору от имени сообщества.

<?php

if (!isset($_REQUEST)) {
return;
}

//Строка для подтверждения адреса сервера из настроек Callback API
$confirmation_token = 'd8v2ve07';

//Ключ доступа сообщества
$token = 'c0223f775444cf3d58a8a1442ec76a9571c8f58e3e24616d9440f73dc43022bbead9b2e576cb41d09c0a1';

//Получаем и декодируем уведомление
$data = json_decode(file_get_contents('php://input'));

//Проверяем, что находится в поле "type"
switch ($data->type) {
//Если это уведомление для подтверждения адреса...
case 'confirmation':
//...отправляем строку для подтверждения
echo $confirmation_token;
break;

//Если это уведомление о новом сообщении...
case 'message_new':
//...получаем id его автора
$user_id = $data->object->message->from_id;
//затем с помощью users.get получаем данные об авторе
$user_info = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids={$user_id}&access_token={$token}&v=5.103"));

//и извлекаем из ответа его имя
$user_name = $user_info->response[0]->first_name;

//С помощью messages.send отправляем ответное сообщение
$request_params = array(
'message' => "Hello, {$user_name}!",
'peer_id' => $user_id,
'access_token' => $token,
'v' => '5.103',
'random_id' => '0'
);

$get_params = http_build_query($request_params);

file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);

//Возвращаем "ok" серверу Callback API

echo('ok');

break;

}
?>

4. Поддержка в SDK ВКонтакте

Вы можете работать с Callback API средствами SDK:

По материалам:
https://vk.com/dev/callback_api

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню