Создание Telegram бота на PHP #2: создание первого бота для Telegram
Last updated
Last updated
Во втором уроке я вам покажу как создать бота для Telegram и мы попробуем отправить несколько сообщений в чат.
Полный список всех записей курса находится на сайте https://prog-time.ru/course_cat/telegram-bot-basic/ или в публикациях на Хабр https://habr.com/ru/users/Prog-Time/posts/
Для того чтобы создать бота, нам необходимо сделать несколько последовательных действий.
1) Вам нужно авторизоваться в Telegram аккаунте
2) В поиске найти пользователя @BotFather
3) Отправить сообщение боту — /newbot
4) После отправки запроса , нужно указать имя бота
5) После этого дублировать название бота, но только суффиксом _bot
6) После успешной регистрации бота, @BotFather пришлёт вам сообщение с токеном, который вам нужно сохранить, в дальнейшем он нам понадобится.
7) Теперь нам нужно создать чат в который мы добавим нашего бота
8) Далее нам нужно получить id
нашего бота. Для этого нужно перейти по следующей ссылке, где вместо символов X нужно подставить ваш токен:
https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates
Не закрывайте эту страницу, после 9 пункта, её нужно будет обновить.
9) Теперь вам необходимо отправить команду /join
в чат для активации бота. После отправки команды, вам нужно обновить страницу, чтобы сделать повторный запрос.
Здесь вам нужно записать следующий фрагмент кода — id вашего бота.
Вам нужен id со знаком минус.
Теперь давайте попробуем отправить сообщение нашему боту методом GET запроса.
Здесь мы создаём переменные в которые заносим токен, id чата и сообщение. Сообщение мы прогоняем через функцию urlencode() для формирования специальный кодировки, для создания запросов.
А в конце мы используем функцию file_get_contents() для отправки запроса.
Данный метод рабочий, но он не удобен для создания сложной структуры приложения. Для более гибкой настройки лучше использовать библиотеку Curl.
Информацию по использованию данной библиотеке, вы можете получить в следующей записи — https://prog-time.ru/parsing-php-biblioteka-curl/
Давайте посмотрим код для запросов, с использованием Curl.
Теперь мы получили более удобочитаемый код, благодаря записи параметров в массив $getQuery. При такой структуре, вам не нужно переписывать URL запроса, изменения вносятся только в массив $getQuery, а функция http_build_query() сама добавит строку параметров в URL запроса.
В дальнейших уроках, мы будем пользоваться библиотекой Curl, но вы должны понимать что многие запросы можно отправлять через функцию file_get_contents. Нужно просто составить правильный URL.
У нас получилось отправить сообщение в Telegram с помощью нашего бота. Теперь давайте посмотрим на ответы которые отправляет нам Telegram.
При создании запроса к боту, Telegram всегда отправляет ответ, который вы можете записать в переменную и вывести на экран.
Если вы допустили ошибку, то вам придёт сообщение с параметрами, в которых указан код ошибки с описанием.
В зависимости от метода работы, вам будут возвращаться разные ответы. В прошлом уроке мы с вами рассматривали документацию, где я рассказывал о типах данных которые вам могут прийти в ответе.
Сейчас давайте попробуем сделать запрос на отправку сообщения и разобрать полученный ответ.
В ответе мы видим следующее:
Параметр «ok» — описывает успешность отправки запроса
«result» — возвращает массив с данными ответа, в которых:
«message_id» — id созданного сообщения
«from» — кто отправил сообщение
«chat» — данные о чате в который попало сообщение
«date» — дата создания сообщения
«text» — текст сообщения
Подведём итог.
Все боты для Telegram создаются через BotFather
Для отправки запросов вы можете использовать функцию file_get_contents или воспользоваться библиотекой Curl
Каждый запрос в Telegram возвращает ответ с описание результата запроса.
Третий урок уже на Хабр - https://habr.com/ru/post/697002/