BotMan знакомство

Хочу рассказать о 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

Удачи всем. Делайте ботов.
  • +10
  • 2,5k
  • 2
Поделиться публикацией

Комментарии 2

    +3

    Статью правильнее озаглавить "Ещё один мануал "как получить вебхук для телеграм-бота""

      0
      А те, кто хотят иметь графический интерфейс для построения диалогов, могут использовать botpress.io.
      Лично мне этот подход понравился куда больше, чем обучение контент менеджера кодингу.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое