ВКонтакте Callback API

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

Старт! Честный VDS/VPS, на котором «Лунная База» живет уже 20+ лет

Задумываетесь о том, чтобы поднять свой pet-проект, сайт клиента или настроить окружение для разработки? Уже пора подумать, где арендовать железо.

Лунная База хостится на FirstVDS более 20 лет. Мыслей о том, чтобы перебраться на другой хостинг, не было ни разу (хотя опыт работы с другими вариантами, конечно, есть).

Бывали разные ситуации, но они бывают на любом железе. Главное, что нужно понять: здесь нет маркетинговой шелухи и сказок про «мы всё сделаем за вас». Если вы берете VDS — вам дают полный root, возможность накатить любую ОС и не лезут в ваши конфиги.

Если в саппорт написать с вопросом по вашему коду и получить ответ: «Читайте документацию и разбирайтесь сами» или «Обратитесь к профильному специалисту» — это не повод обижаться. Это повод углубить свои знания в DevOps и сайтостроении! Бегите от тех, кто пообещает: «Мы всё чиним и настраиваем абсолютно бесплатно!». Никто никогда не работает «по доброте душевной» в ущерб себе, а бесплатный сыр в администрировании обычно заканчивается сломанной базой данных.

Что по факту: Гибкое масштабирование ядер и RAM, экономия по сравнению с физическими серверами и адекватная панель ispmanager, если она вам нужна.



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

Самый честный хостинг за 20+ лет существования Лунной Базы

Задумываешься о том, чтобы поднять свой сайт в Интернете? Уже пора подумать о том, какой хостинг выбрать?

Лунная База хостится 20+ лет на firstDVS. При этом, мыслей о том, чтобы перебраться на другой хостинг не было. (Но, при этом есть опыт работы с другими вариантами.)

Бывали с firstDVS разные ситуации, но, они бывают на всех хостингах. Единственное, что тут важно понять, - это то, что никто ничего тебе не будет впаривать... Но, и работать за тебя тоже никто не станет. Если в саппорт ответили: «Читайте по ссылке и разбирайтесь сами...» или вообще «Обратитесь за помощью к специалисту», - это повод углубить свои знания в области сайтостроения, а не бежать к тем, что пообещают: «Мы всё чиним и всё делаем за своих клиентов абсолютно бесплатно!» Никто никогда ничего ни за кого "по доброте душевной" не делал, не делает и не будет делать!

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