В наше время чат-бот – очень требовательная тема. Есть несколько платформ, которые позволяют нам общаться с людьми посредством разговоров. Facebook Messenger Platform является одним из них. С Messenger Platform мы можем персонализировать общение с пользователями или клиентами Facebook-страницы. Вместо традиционного автоответчика мы используем Facebook Messenger Chat Bot.
Используя Messenger Chat Bot, у нас есть возможность улучшить пользовательский опыт, общаясь один на один со специальным и полезным сообщением. Кроме того, мы можем предоставить различные типы сообщений, таких как тексты, изображения, аудио, видео и т.д. в соответствии с разговором.
Это пошаговое руководство по созданию простого чата Facebook Messenger с использованием PHP.
Начало работы с Facebook Messenger Chat Bot
Прежде всего, нам нужно создать приложение Facebook и страницу Facebook. Мы можем создать приложение Facebook, перейдя на страницу приложения разработчика и нажав кнопку « Добавить новое приложение». Появится всплывающее окно для создания нового приложения Facebook.
Создание приложения Facebook
Заполните поля соответствующими значениями и нажмите кнопку « Создать идентификатор приложения» . А затем нажмите кнопку « Начать» рядом с Messenger на странице « Настройка продукта» .
После создания приложения нам нужна страница в Facebook. Если у нас уже есть страница в Facebook, мы можем использовать ее, в противном случае нам нужно создать новую страницу.
Помимо приложения Facebook и страницы Facebook нам нужен маркер страницы, чтобы наша страница могла начать использовать API. Выберите страницу, чтобы сгенерировать токен доступа.
Генерация маркеров страниц для Facebook Messenger Bot
Пока что у нас есть приложение Facebook, страница Facebook и токен доступа к странице, чтобы связать приложение с Page. В дополнение к этому нам нужно настроить Webhook для получения сообщений и других событий, отправленных пользователями Messenger.
Настройка Webhooks
Чтобы настроить веб-крючок, нажмите кнопку « Настройка веб – крючков» в разделе « Веб-крючки ». Появится следующее всплывающее окно :
Настройка Facebook Messenger
$ verify_token = 'your_verify_token';
Настройка Webhook прошла успешно
На приведенном выше снимке экрана мы видим « Выберите страницу, чтобы подписать ваш веб-крючок на события страницы » внизу. Выберите страницу и нажмите кнопку « Подписаться» , чтобы подписаться на определенную страницу.
Пока что у нас есть фон для настройки Facebook Messenger Chatbot. В результате этого URL-адрес Webhook может получать обратный вызов от Facebook. Нам нужно прослушивать POST- звонки на нашем веб-крюке.
Прослушивание POST звонков
В нашем URL-адресе Webhook мы используем php: // input для чтения необработанных данных из тела запроса следующим образом:
$input = json_decode(file_get_contents('php://input'), true);
Входящие сообщения из Facebook представлены в формате JSON и имеют следующую структуру:
{
"object":"page",
"entry":[
{
"id":"111998675571667",
"time":1484326151343,
"messaging":[
{
"sender":{
"id":"12267537747884"
},
"recipient":{
"id":"111998675571667"
},
"timestamp":1484326151290,
"message":{
"mid":"mid.1484326151290:f182b81009",
"seq":53593,
"text":"hi"
}
}
]
}
]
}
Мы можем сохранить этот ответ в файл для отладки и других целей, используя следующий код PHP:
file_put_contents('fb_response.txt', file_get_contents("php://input") . PHP_EOL, FILE_APPEND);
Ответить с текстовым сообщением
Как только мы получаем входящее сообщение по нашему URL-адресу Webhook, мы читаем сообщение и декодируем строку JSON, используя json_decode . После декодирования у нас есть сообщение в формате массива. Из этого массива можно извлечь следующее:
$input = json_decode(file_get_contents('php://input'), true);
// Page ID of Facebook page which is sending message
$page_id = $input['entry'][0]['id'];
// User Scope ID of sender.
$sender_id = $input['entry'][0]['messaging'][0]['sender']['id'];
// Get Message text if available
$message = isset($input['entry'][0]['messaging'][0]['message']['text']) ? $input['entry'][0]['messaging'][0]['message']['text']: '' ;
// Get Postback payload if available
$postback = isset($input['entry'][0]['messaging'][0]['postback']['payload']) ? $input['entry'][0]['messaging'][0]['postback']['payload']: '' ;
Если получено сообщение или постбэк, мы ответим сообщением. Мы должны проанализировать сообщение / обратную передачу и подготовить соответствующий ответ для отправки. Мы можем искать ключевые слова или использовать preg_match для полученного сообщения и отвечать соответственно.
В целях изучения мы ответим сообщением, напечатанным пользователем на следующем рисунке.
if($message) {
$reply = 'Message received: ' . $message;
$responseJSON = '{
"recipient":{
"id":"'. $sender_id .'"
},
"message": {
"text":"'. $reply .'"
}
}';
$access_token = 'your_page_access_token';
//Graph API URL
$url = 'https://graph.facebook.com/v2.7/me/messages?access_token='.$access_token;
// Using cURL to send a JSON POST data
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $responseJSON);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$result = curl_exec($ch);
curl_close($ch);
}
Когда мы отправляем любое сообщение нашему боту, он ответит тем же сообщением.
Facebook Messenger Bot Демо
Таким образом, мы создаем простой чат-бот, используя платформу Facebook Messenger. Наш бот теперь может отвечать текстовыми сообщениями. Помимо текстовых сообщений, мы также можем отправлять изображения, ссылки, кнопки, общие шаблоны, аудио и видео. Кроме того, мы можем сделать Chat Bot более интеллектуальным, интегрировав API-интерфейсы для обработки естественного языка (NLP), чтобы бот мог лучше понимать сообщения пользователей и отвечать соответствующим ответом.
Дальнейшие чтения
Персонализируйте свой Messenger Bot, добавив постоянное меню и кнопки «Начало работы»
Система подписки Messenger Bot с использованием Broadcast API в PHP
Источник записи: https://thedebuggers.com