5 февраля 2019

BotMan знакомство

Системы обмена сообщениямиPHPПрограммированиеAPI
Из песочницы
Хочу рассказать о PHP фреймворке для создания ботов BotMan (Сайт). Botman можно использовать и как библиотеку, и как расширение Laravel (BotMan Studio).


Преимущество данного фреймворка в том, что код для бота может работать для множества платформ:

  • Amazon Alexa
  • Cisco Spark
  • Facebook Messenger
  • Hangouts Chat
  • HipChat
  • Microsoft Bot Framework
  • Nexmo
  • Slack
  • Telegram
  • Twilio
  • Web
  • WeChat
  • VK

Пример кода:

<?php

$botman->hears('Hello BotMan!', function($bot) {
    $bot->reply('Hello!');
    $bot->ask('Whats your name?', function($answer, $bot) {
        $bot->say('Welcome '.$answer->getText());
    });
});

$botman->listen();


Результат:



Установка BotMan Studio


Создадим новый проект в папке botman:

composer create-project --prefer-dist botman/studio botman

Можно проверить работу через командную строку:

$ php artisan botman:tinker
You: test
BotMan: hello!

Или проверить через браузер. Запустим тестовый сервер:

php artisan serve
Laravel development server started: <http://127.0.0.1:8000>

Откроем в браузере 127.0.0.1:8000/botman/tinker

И напишем hi или start conversation для проверки.

Как создать бота для telegram?


В первую очередь необходимо зарегистрировать бота у @BotFather.





Все бот зарегистрирован и у нас есть токен.

В первую очередь необходимо установить драйвер telegram:

composer require botman/driver-telegram

Вариант А, если вы используете BotMan Studio:

php artisan botman:install-driver telegram

В файле

config/botman/telegram.php

добавить ваш токен Telegram

'telegram' => [
	'token' => 'YOUR-TELEGRAM-TOKEN-HERE',
]

Вариант Б, если вы не используете BotMan Studio:

DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class);

// Create BotMan instance
BotManFactory::create($config);

Регистрируем Webhook в Telegram


Чтобы Telegram знал, как он может общаться с вашим ботом BotMan, нужно зарегистрировать URL-адрес, по которому работает BotMan, в Telegram.

Вы можете сделать это, отправив POST-запрос на этот URL:

https://api.telegram.org/bot<YOUR-TELEGRAM-TOKEN-HERE>/setWebhook

Для этого запроса POST требуется только один параметр url с URL-адресом, указывающим на роут BotMan. Если вы используете Botman Studio, это будет:

https://site.domain/botman

HTTPS обязателен по соображениям безопасности.

Вместо ручной отправки запроса в Telegram вы можете использовать консольную команду для регистрации вашего Webhook. Можно передать --output флаг, чтобы увидеть json Telegram ответа.

$ php artisan botman:telegram:register

Удачи всем. Делайте ботов.
Теги:phplaravelbotman
Хабы: Системы обмена сообщениями PHP Программирование API
+10
7k 54
Комментарии 2
Лучшие публикации за сутки

Минуточку внимания

Разместить