Как настроить callback api Вконтакте

vk бот

Первым делом, при создании бота для VK, необходимо настроить Webhooks. Webhooks это ссылка, на которую Вконтакте будет передавать все события, которые будет получать бот ВК. В дальнейшем эти данные можно будет сохранять и обрабатывать.
С ВК ботом, можно автоматизировать процессы или сделать автоответчик для коммуникации с клиентами или друзьями. VK JSON передает через бота запросы о (сообщения, новости, запросы и т.д). Как настроить и авторизовать адрес сервера для VK бота.
Зайдите в группу VK.com — Нажмите Управление сообществом, далее Работа с Api.
vk бот

Подключение CallBack Api бота


Нажмите кнопку Создать Токен. Готово!
вк бот вк бот

Установка и подтверждение VK.com Webhooks

Откройте PHP файл и скопируйте скрипт ниже

$confirmation_token = «************»; // Строка, которую должен вернуть сервер.
$data = json_decode(file_get_contents(‘php://input’));
$conf = $data->;
if($conf == «confirmation»)
echo «$confirmation_token»;
>

Скопируйте код: «Строка, которую должен вернуть сервер», от ВК и вставьте его, как параметр $confirmation_token. Загрузите файл vk.php на ваш сервер и вставьте ссылку в поле Адрес Вашего сервера. Нажмите кнопку Подтвердить. Готово! Webhooks для VK.com подтвержден.

Теперь все данные в формате JSON, можно получить в автоматическом режиме в данной ссылке.

вк бот вк бот

вк бот

Нажмите на меню Типы событий, для того, чтобы указать, какие данные о каких события будете получать от ВК,

Раскрутка группы в ВК: Как подключить CallBack API и не потерять клиентов ВКонтакте

Реклама

Источник: aaronsmith-rustech.blogspot.com

Как настроить callback api вконтакте. Отслеживание активности сообщества вконтакте

Сообщества Вконтакте уже давно стали не просто способами развлечений, но и отличным инструментом для бизнеса и продаж. Команда разработчиков Вконтакте сделала для сообществ отличную функцию CallBack API смысл которой в отправке событий происходящих в Вашем сообществе.

Мы сделали в U-CRM инструмент отслеживания происходящих событий в Ваших сообществах. Все уведомления о комментариях, новых постах, сообщениях сообщества и прочего приходят в систему и удобно распределены по разделам, которые можно оперативно просматривать.

Чем это Вам поможет?

Если у вас есть сообщество, которое вы используете как бизнес инструмент для взаимодействия с вашей ЦА, которая находится Вконтакте, то эта функция просто необходима вам! И вот почему.

1. Вы всегда будете в курсе любого события вашего сообщества комментарий, отзыв или новый пост не будет пропущен.

2. Мгновенная реакция ваших менеджеров на любой вопрос ваших клиентов заданный в сообществе.

3. Увеличение продаж за счет быстрой реакции на вопросы участников сообщества.

4. Контроль нежелательных комментариев которые портят имидж вашей компании (происки конкурентов).

Настройка отслеживания сообщества

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

Добавление сообщества в U-CRM

1 — скопируйте адрес вашего сообщества, id или короткое имя, например: http://vk.com/ucrmru короткое имя выделено жирным. И вставьте в поле добавления сообщества.

2 — нажмите добавить сообщество, после чего система попросит вас перейти в настройки.

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

1 — Скопируйте URL-адрес показанный в поле «Адрес Вашего сервера», после чего вставьте его в Настройках сообщества >> работа с API >> Callback API в поле «Адрес Вашего сервера» .

2 — в этом поле нужно указать Код указанный в Настройках сообщества >> работа с API >> Callback API в поле «Строка, которую должен вернуть сервер» .

Настройки в сообществе

Теперь вам надо сделать настройки в самом сообществе вконтакте, для этого перейдите в сообщество и зайдите в «Управление сообществом»

Сразу после этого идем в правом меню в раздел «Работа с API»


1 — Заходим в Callback API.

2 — В поле «Адрес Вашего сервера» вставляем URL-адрес, который выдала система U-CRM после добавления сообщества (было описано выше).

3 — Копируем Код указанный «Строка, которую должен вернуть сервер» и вставляем его в одноименное поле в U-CRM.

Еще по теме:  Social send Вконтакте что это

После сохранения настроек в U-CRM возвращаемся к настройкам сообщества Вконтакте и нажимаем во вкладке CallBack API кнопку «Обновить» , после чего должно получится что-то такое:

Если у вас все получилось,то все что осталось сделать настроить какие Типы событий будет отсылать Вконтакте в U-CRM. Для этого переходим в вкладку «Типы событий» , отмечаем все галочки (чтобы не париться)

Вы можете настроить уведомления о событиях в сообществе через VK Bot (удобнее) или через Telegram Bot. Уведомления будут приходить вам в личные сообщения.

Настроить интеграцию с Vk Bot или Telegram Bot вы можете в Личном профиле >> Настройки уведомлений .

На этом все настройки завершены уведомления должны приходить, потестируйте, если у вас не получилось, пишите в чат справа в углу — поможем!

Писать будем используя Сallback api(отправляет каждое действие в сообществе по отдельности на сервер). Поэтому его тоже следует настроить. Переходим в
«Управление сообществом» →»Работа с API». Для работы бота нужно зарегистрировать ключ доступа. Нажимаете «Создать ключ» и выбираете необходимые права доступа, для этого бота нужны только права на сообщения. Подтверждаем номер телефона и сохраняем куда нибудь ключ доступа. Теперь переходим во вкладку Callback API.

Ставим свое название сервера и выбираем последнюю версию API(на данный момент она 5.80, и именно с ней ниже представленный бот будет работать 100%) . Во вкладке «Типы запросов» выбираем только входящие сообщения.

Настройка сервера

Теперь вам понадобится сервер для хостинга своего бота. Вы можете использовать бесплатные хостинги, например 000webhost.

Если вы будете использовать дешевые/бесплатные хостинги, то вероятнее всего на них будет отключен cURL(вы не сможете отправлять ботом медиа файлы, только текст), и его нельзя включить. У 000webhost все с этим нормально, можете использовать. Если у вас свой сервер или хороший купленный, то вам надо подключить cURL для полноценной работы бота из нашего примера.

Как работает Callback API и keyboard

Проведу краткий экскурс как все работает. Сallback API отсылает на ваш сервер любое событие, которое происходит в группе виде JSON. Полный список событий можно посмотреть во вкладке «Сallback API» → «Типы событий». Вот так выглядит JSON запрос когда пользователь отправляет сообщение, в данном случае он нажал на кнопку:

Тут есть несколько интересных полей, которые можно обработать: id пользователя, текст сообщения(text), полезная нагрузка кнопки(payload).

Отправка сообщений пользователю происходит с помощью метода messages.send . Если вы отправляете клавиатуру, то после всех стандартных параметров вы добавляете параметр keyboard, который содержит json кнопок, вот как он выглядит:

Работа с библиотекой

Для работы бота мы используем самописную библиотеку на PHP. (Если ссылка не работает, то вот архив)вы можете найти документацию к библиотеке и скачать саму библиотеку. Вот короткий листинг готовых функций для написания бота, подробнее ищите по ссылке выше. Если вы хотите узнавать об изменениях в библиотеке, то напишите хотя бы одно сообщение нашему боту в ВК , через него мы будет вас оповещать об изменениях.

$vk = new vk_api(vk_key, version_api) — инициализация бота. Параметры: ключ сообщества(vk_key), версия API(version_api).

sendMessage(id, text) — функция отправки сообщений юзеру. Параметры: id пользователя(id), текст сообщения(text).

sendImage(id, patch) — функция отправки изображений. Параметры: id пользователя(id), путь до изображения(patch).

sendButton(id, text, buttons, one_time) — функция отправки сообщения с кнопками. Параметры: id пользователя(id), текст сообщения(не может быть пустым)(text), массив с кнопками(buttons), не обязательный параметр one_time, по дефолту false, если поставить true, то после нажатия на любую кнопку клавиатура скроется.

request(method, array_arguments) — универсальная функция работы с методами. Параметры: method — название метода из официального api, array_arguments — массив параметров.

sendOK() — Бета функция. Используется вместо echo «ok», помогает в тех случаях, когда время работы скрипта долгое, и бот начинает повторять сообщения по несколько раз.
ВАЖНО: есть использовать эту функцию, то у вас не будет отображаться вывод ошибок. Во время дебага заменяйте на echo «ok»

Полный код бота на PHP

Теперь перейдем собственно к коду, где прокомментирована почти каждая строка.
Данный код поддерживается на PHP 5.6+
В блоке CONFIG укажите свой ключ доступа сообщества, ключ для подтверждения сервера а так же выбранную вами версию API.

Еще по теме:  Как в контакте выйти из группы

Полный код бота

«Fish»], «А какие бывают?», «blue»]; //Код кнопки «Fish» const BTN_BACK = [[«command» => «start»], » «Pink_salmon»], «Горбуша», «white»]; // Код кнопки «Горбуша» const BTN_GOLDFISH = [[«animals» => «Goldfish»], «Золотая рыбка», «blue»]; // Код кнопки «Золотая рыбка» const BTN_PLOTVA = [[«animals» => «Plotva»], «Плотва», «green»]; // Код кнопки «Плотва» $vk = new vk_api(VK_KEY, VERSION); // создание экземпляра класса работы с api, принимает ключ и версию api $data = json_decode(file_get_contents(«php://input»)); //Получает и декодирует JSON пришедший из ВК if ($data->type == «confirmation») < //Если vk запрашивает ключ exit(ACCESS_KEY); //Завершаем скрипт отправкой ключа >$vk->sendOK(); //Говорим vk, что мы приняли callback if (isset($data->type) and $data->type == «message_new») < //Проверяем, если это сообщение от пользователя $id = $data->object->from_id; //Получаем id пользователя, который написал сообщение $message = $data->object->text; if (isset($data->object->peer_id)) $peer_id = $data->object->peer_id; // Получаем peer_id чата, откуда прилитело сообщение else $peer_id = $id; if (isset($data->object->payload))< //получаем payload $payload = json_decode($data->object->payload, True); > else < $payload = null; >if (isset($payload[«command»]) or mb_strtolower($message) == «начать») < //Если нажата кнопка начать или sendButton($peer_id, «Хочешь посмотреть на рыбок?», []); //Отправляем кнопку пользователю >else < if ($payload != null) < // если payload существует switch ($payload[«animals»]) < //Смотрим что в payload кнопках case «Fish»: //Если это Fish $vk->sendButton($peer_id, «Вот такие, выбирай», [ //Отправляем кнопки пользователю , ]); break; case «Pink_salmon»: //Если это Горбуша $vk->sendMessage($peer_id, «Держи свою горбушу!»); //отправляем сообщение $vk->sendImage($peer_id, «img/pink_salmon.jpg»); //отправляем картинку break; case «Goldfish»: //Если это Золотая рыбка $vk->sendMessage($peer_id, «Она исполнит твои желания. «); $vk->sendImage($peer_id, «img/goldfish.jpg»); break; case «Plotva»: //Если это Плотва $vk->sendMessage($peer_id, «Ой, похоже картинку перепутали)»); $vk->sendImage($peer_id, «img/plotva.jpg»); break; default: break; > > > > ?>

//Подключаем библиотеку для работы с api vk

const VK_KEY = «your_key» ; //тот самый длинный ключ доступа сообщества

const ACCESS_KEY = «your_key» ; //например c40b9566, введите свой

const VERSION = «5.80» ; //ваша версия используемого api

const BTN_FISH = [ [ «animals» = > «Fish» ] , «А какие бывают?» , «blue» ] ; //Код кнопки «Fish»

const BTN_BACK = [ [ «command» = > «start» ] , » // Код кнопки » «Pink_salmon» ] , «Горбуша» , «white» ] ; // Код кнопки «Горбуша»

const BTN_GOLDFISH = [ [ «animals» = > «Goldfish» ] , «Золотая рыбка» , «blue» ] ; // Код кнопки «Золотая рыбка»

const BTN_PLOTVA = [ [ «animals» = > «Plotva» ] , «Плотва» , «green» ] ; // Код кнопки «Плотва»

$vk = new vk_api (VK_KEY , VERSION ) ; // создание экземпляра класса работы с api, принимает ключ и версию api

$data = json_decode (file_get_contents («php://input» ) ) ; //Получает и декодирует JSON пришедший из ВК

exit (ACCESS_KEY ) ; //Завершаем скрипт отправкой ключа

$vk -> sendOK () ; //Говорим vk, что мы приняли callback

$id = $data -> object -> from_id ; //Получаем id пользователя, который написал сообщение

$message = $data -> object -> text ;

if (isset ($data -> object -> peer_id ) )

$peer_id = $data -> object -> peer_id ; // Получаем peer_id чата, откуда прилитело сообщение

if (isset ($data -> object -> payload ) ) < //получаем payload

$payload = json_decode ($data -> object -> payload , True ) ;

Лучшие утилиты для удаления вирусов и вредоносных программ

if (isset ($payload [ «command» ] ) or mb_strtolower ($message ) == «начать» ) < //Если нажата кнопка начать или

Вредоносное ПО (malware) — это назойливые или опасные программы.

Как тестировались программы

Лучшие программы для восстановления данных с любых носителей информации.

Как уменьшить нагрузку на ЦП: простые, но эффективные методы решения проблемы

Здравствуйте.Одна из самых распространенных причин, по которым тормозит.

Источник: cdd-evo.ru

Callback-кнопки для бота ВК

123

Callback-кнопки позволяют отслеживать нажатие кнопки пользователем и выполнять какие-либо действий без отправки сообщения. Как ими пользоваться и как их сделать — разберем в этой статье. Плюсом добавим боту кнопки для отправки своего местоположения, перевода денег и link-кнопку.

Шаг 1: Скрипт

Обычно я начинаю с настройки группы, но сегодня отложу это на потом — на конец статьи.

Так-с, и для начала качаем последний бета-релиз библиотеки SimpleVK:

Либо подключаем через composer:

composer require digitalstars/simplevk:dev-testing —ignore-platform-reqs

Теперь нужно создать файл php и написать несколько строк кода. Пока нам нужно подключить библиотеки, авторизоваться и инициализировать нужные нам переменные:

setConfirm( ‘Строка, которую должен вернуть сервер’ ) // Подтверждение callback-сервера ->setUserLogError( 294485732 ) // Установка айди юзера ВК, которому будут отправляться уведы об ошибках ->initType( $type ) // Инициализация типа события ->initText( $text ) // Инициализация текста сообщения ->initPayload( $payload ); // Инициализация пэйлоулда

В предыдущих статьях мы инициализировали переменные методом initVars(), однако в текущей версии библиотеки появилась возможность «точечной» инициализации каждой переменной по отдельности. Мне пригодится тип события initType( $type ), тест сообщения initText( $text ) и payload initPayload( $payload ).

Еще по теме:  Vk com examtop задание 24

Тут можно заметить ещё один метод — метод setUserLogError( $id ). Используется для отправки уведомлений об ошибках конкретному человеку ($id — айди страницы ВКонтакте). Метод необязателен, поэтому можно оставить, а можно и убрать. Мне лично удобнее оставлять

Далее создам команду ‘/кнопки’ для отправки ботом клавиатуры пользователям:

if ( $type == ‘message_new’ ) < if ( $text == ‘/кнопки’ ) < // Тут продолжим писать код >>

Чтобы инициализировать Callback-кнопку нужно воспользоваться методом buttonCallback( $text, $color, $payload ). Принимает 3 параметра — текст кнопки, её цвет, а также payload в виде ассоциативного массива:

$btn_callback = $vk->buttonCallback( ‘Callback-кнопка’, ‘green’, [ ‘command’ => ‘btn_callback’ ] );

Есть ещё несколько методов для создания кнопок, рассмотрим их тоже:

  • Метод buttonLocation( $payload ) — кнопка для отправки своего местоположения, в кач-ве параметра может принимать только payload;
  • Метод buttonOpenLink( $link, $label, $payload ) — кнопка-ссылка, в качестве параметров используется ссылка (обязательно с http или https), текст кнопки и payload;
  • Метод buttonPayToGroup( $group_id, $amount, $descriptionl, $datal, $payload ) — кнопка для перевода фиксированной суммы сообщетсву, в кач-ве параметров используется ID сообщества, сумма в ₽, комментарий к переводу, словарь с произвольными параметрами и payload;
  • Метод buttonPayToUser( $user_id, $amount, $description, $payload ) — кнопка для перевода фиксированной суммы пользователю, в качестве параметров указывается ID юзера, сумма в рублях, комментарий к платежу и payload;
  • Метод buttonDonateToGroup( $group_id, $payload ) — кнопка для перевода денег сообществу, в параметрах указывается ID группы и payload;
  • Метод buttonDonateToUser( $user_id, $payload ) — кнопка для перевода денег юзеру, метод принимает на вход айди пользователя и payload;
  • Метод buttonApp( $text, $app_id, $owner_id, $hash, $payload ) — кнопка VK Apps, принимает на вход текст кнопки, айди приложения, айди группы, хэш и payload.

Я же много кнопок клепать не буду, сделаю только 4:

$btn_callback = $vk->buttonCallback( ‘Callback-кнопка’, ‘green’, [ ‘command’ => ‘btn_callback’ ] ); $btn_donate = $vk->buttonDonateToUser( 123 ); $btn_location = $vk->buttonLocation(); $btn_link = $vk->buttonOpenLink( ‘https://kotoff.net’, ‘Перейти’ );

Ну, и осталось отправить клавиатуру пользователю:

$vk->msg( ‘Твои кнопки:’ )->kbd( [ [ $btn_callback ], [ $btn_donate ], [ $btn_location ], [ $btn_link ] ] )->send();

С помощью метода msg() формируем текст сообщения, метод kbd() создаёт «сетку» с кнопками, а метод send() отправляет всё это дело юзеру. Кстати для метода kbd( $keyboard = array(), $inline = false, $one_time = false ) в данном случае можно указать ещё и второй параметр ($inline = true), чтобы кнопки отправились в inline-формате.

При нажатии на кнопку будем отправлять пользователю всплывающие уведомление с помощью метода eventAnswerSnackbar( $text ). Чтобы отследить нажатие на кнопку создадим через elseif (после проверки на message_new) такую же проверку, но уже не на входящее, а на действие с сообщением (message_event). Также делаю проверку по payload (напомню, у нас он такой: [ ‘command’ => ‘btn_callback’ ]):

else if ( $type == ‘message_event’ ) < if ( $payload[‘command’] == ‘btn_callback’ ) < $vk->eventAnswerSnackbar( ‘Привет!’ ); > >
setConfirm( ‘Строка, которую должен вернуть сервер’ ) // Подтверждение callback-сервера ->setUserLogError( 294485732 ) // Установка айди юзера ВК, которому будут отправляться уведы об ошибках ->initType( $type ) // Инициализация типа события ->initText( $text ) // Инициализация текста сообщения ->initPayload( $payload ); // Инициализация пэйлоулда if ( $type == ‘message_new’ ) < if ( $text == ‘/кнопки’ ) < $btn_callback = $vk->buttonCallback( ‘Callback-кнопка’, ‘green’, [ ‘command’ => ‘btn_callback’ ] ); $btn_donate = $vk->buttonDonateToUser( 294485732 ); $btn_location = $vk->buttonLocation(); $btn_link = $vk->buttonOpenLink( ‘https://kotoff.net’, ‘Перейти’ ); $vk->msg( ‘Твои кнопки:’ )->kbd( [ [ $btn_callback ], [ $btn_donate ], [ $btn_location ], [ $btn_link ] ] )->send(); > > else if ( $type == ‘message_event’ ) < if ( $payload[‘command’] == ‘btn_callback’ ) < $vk->eventAnswerSnackbar( ‘Привет!’ ); > >

Шаг 2: Настройки группы

1. Создаём токен, выставляем права доступа на сообщения сообщества и вставляем его в код:

123

2. Выбираем версию API, указываем ссылку на бота, копируем и вставляем в код строку, которую должен вернуть сервер. После сохранения скрипта у себя на сервере — жмём кнопку подтвердить:

3. Выбираем необходимые нам типы событий (входящие и действия с сбщ):

4. Не забываем включить сообщения сообщества и возможности для ботов:

Шаг 3: Заключение

  • 5id15
  • 22.07.2022
  • 3 345
  • 8
  • 3

Источник: kotoff.net

Рейтинг
( Пока оценок нет )
Загрузка ...