Asterisk и Вконтакте интеграция через API

Asterisk и Вконтакте интеграция через API

В сегодняшней статье пойдет речь о том, как осуществить отправку уведомлений о входящих вызовах в VK (Вконтакте).
Для начала необходимо получить ACCESS_TOKEN. Его можно получить в разделе Developers. В верхнем меню необходимо перейти в Мои приложения и после чего нажать Создать приложение. Вводим параметры как на рисунке и жмем Подключить приложение.
Asterisk и Вконтакте интеграция через API
  • Название – любое понятное для вас название для приложения;
  • Платформа – выбираем Standalone-приложение;
Переходим в Настройки меню слева приложения и запоминаем ID приложения, как показано на рисунке ниже:
Asterisk и Вконтакте интеграция через API
Копируем ссылку ниже, заменив client_id на свое значение, полученное в приложении (ID Приложения) и открываем на новой вкладке браузера полученную ссылку:
https://oauth.vk.com/authorize?client_id=6288569&scope= offline,messages&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.37&response_type=token
API Вконтакте запросит разрешение на доступ к вашему аккаунту – Разрешаем

Asterisk и Вконтакте интеграция через API

Если все сделали правильно Вонтакте вернет вам token:

https://oauth.vk.com/blank.html#access_token=9d4aeee638b83bee0073a9048b8ae1b3c62111cc1e40a504ce1afb6d26e996e9d2c1af7cc5eab7602e5c4&expires_in=0&user_id=97594730
Asterisk и Вконтакте интеграция через API

Сохраняем полученные данные и производим настройки на стороне Asterisk. Создаем файл asterisk_notification_vk.php:

#!/usr/bin/php -q request['agi_callerid']; $id = "ID получателя сообщения"; $token = "Токен"; function send($id , $message, $token) { $url = 'https://api.vk.com/method/messages.send'; $params = array( 'user_id' => $id, 'message' => $message, 'access_token' => $token, 'v' => '5.37', ); $result = file_get_contents($url, false, stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query($params) ) ))); } send($id, $message, $token); ?>

В скрипте необходимо изменить переменные:

  • $id – идентификатор пользователя, которому будет отправлено сообщение. Помимо user_id, это может быть ID группового чата;
  • $token – API – токен, который вы получили ранее;
Файл скрипта необходимо поместить в директорию /var/lib/asterisk/agi-bin/ и установить следующие права запуска:
chmod 755 /var/lib/asterisk/agi-bin/asterisk_notification_vk.php
chown asterisk:asterisk /var/lib/asterisk/agi-bin/asterisk_notification_vk.php
dos2unix /var/lib/asterisk/agi-bin/asterisk_notification_vk.php

Для подключения AGI в диалплан Asterisk требуется выполнить подключение:

exten => _.,n,AGI(asterisk_notification_vk.php)