Всем привет. Поскольку в опроснике большинство проголосовало за написание статей по созданию ботов, дальнейшем я буду писать больше на эту тему. А начнем мы с самого простого бота с использованием PHP и Botman Studio.
Botman Studio — это специальный фреймворк для разработки ботов на основе laravel (можно использовать и без отдельным пакетом). Включает в себя драйверы для различных мессенджеров таких как Facebook Messenger, Slack, Telegram, WeChat и другие.
А создадим мы бота который будет отвечать на сообщения пользователей. Ничего сложного.
Регистрация бота
В интернете уже написано много статей о регистрации бота в телеграм, потому мы очень быстро пробежимся по ключевым шагам.
- Откроем телеграм и в поиске пишем
@BotFather
- Пишем в чат
/newbot
- Вводим имя пользователя бота
- Вводим отображаемое имя вашего бота (должно заканчиваться на Bot или _bot)
После этого у вы получите токен бота, через него мы и будем взаимодействовать с api.
Открываем файл .env
и пишем туда строчку:
TELEGRAM_TOKEN=YOUR-TELEGRAM-TOKEN-HERE
YOUR-TELEGRAM-TOKEN-HERE заменяем на токен
Создание проекта
Для начала работы у вас должен быть установлен composer
(ссылка на инструкцию). Если композер установлен, можно приступать к созданию бота.
Открываем консоль и переходим в нужную директорию, вводим команду composer create-project --prefer-dist botman/studio project_name
где project_name
— название вашего проекта(и директории которая будет создана).
Подключение к API
Проект создан, приступим к написанию функционала бота. Первым делом нужно подключить драйвер для телеграм:
php artisan botman:install-driver telegram
Для работы вебхука нужен обязательно доступ по https
, для этого вам понадобится либо собственный домен с https либо можно воспользоваться https://ngrok.com/.
Установка Web хука
Чтобы получать сообщения от пользователей нам нужно установить вебхук. Регистрация вебхука выполняется пост запросом на адрес https://api.telegram.org/bot
, нужно передать всего один параметр url
со значением https://mylocal.app/botman(урл заменить на свой но обязательно оставить botman
).
Для регистрации вебхука в Botman вам не нужно вручную ничего отправлять, просто запустим команду — php artisan botman:telegram:register
и укажем адрес вашего вебхука. Для создания https без собственного домена и бесплатно я использую ngrok
, делается это всего за несколько команд
Если вы только скачали себе приложение, вам нужно добавить ваш токен авторизации, как это сделать описано в личном кабинете в разделе Auth
После этого запускаем сервер:
ngrok http 80 --host-header=bot.local
bot.local
указано потому что у меня настроен виртуал хост на моего бота в апаче и в файле hosts
есть запись
Копируем адрес https который получили и выполняем команду php artisan botman:telegram:register
, вас попросят указать адрес вебхука, вставляем и дописываем /botman
Готово.
Теперь у вас есть полноценный бот в телеграме, он умеет слушать сообщения и если увидит сообщение Hi
ответит вам Hello!
. Попробуйте сами, найдите вашего бота в телеграмм и напишите ему слово Hi