Создание Telegram бота на PHP #2: создание первого бота для Telegram
Last updated
Was this helpful?
Last updated
Was this helpful?
Во втором уроке я вам покажу как создать бота для Telegram и мы попробуем отправить несколько сообщений в чат.
Полный список всех записей курса находится на сайте или в публикациях на Хабр
Для того чтобы создать бота, нам необходимо сделать несколько последовательных действий.
1) Вам нужно авторизоваться в Telegram аккаунте
2) В поиске найти пользователя @BotFather
3) Отправить сообщение боту — /newbot
4) После отправки запроса , нужно указать имя бота
5) После этого дублировать название бота, но только суффиксом _bot
7) Теперь нам нужно создать чат в который мы добавим нашего бота
8) Далее нам нужно получить id
нашего бота. Для этого нужно перейти по следующей ссылке, где вместо символов X нужно подставить ваш токен:
https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates
Не закрывайте эту страницу, после 9 пункта, её нужно будет обновить.
9) Теперь вам необходимо отправить команду /join
в чат для активации бота. После отправки команды, вам нужно обновить страницу, чтобы сделать повторный запрос.
Здесь вам нужно записать следующий фрагмент кода — id вашего бота.
Вам нужен id со знаком минус.
Теперь давайте попробуем отправить сообщение нашему боту методом GET запроса.
Здесь мы создаём переменные в которые заносим токен, id чата и сообщение. Сообщение мы прогоняем через функцию urlencode() для формирования специальный кодировки, для создания запросов.
А в конце мы используем функцию file_get_contents() для отправки запроса.
Данный метод рабочий, но он не удобен для создания сложной структуры приложения. Для более гибкой настройки лучше использовать библиотеку 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 возвращает ответ с описание результата запроса.
6) После успешной регистрации бота, пришлёт вам сообщение с токеном, который вам нужно сохранить, в дальнейшем он нам понадобится.
Информацию по использованию данной библиотеке, вы можете получить в следующей записи —
Третий урок уже на Хабр -