Как стать автором
Обновить

BotMan знакомство

Время на прочтение 2 мин
Количество просмотров 11K
Хочу рассказать о 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
Комментарии 3
Комментарии Комментарии 3

Публикации

Истории

Работа

PHP программист
175 вакансий

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн