На данном сайте используются cookie-файлы и аналогичные технологии. Если, прочитав это сообщение, вы остаетесь на сайте, это означает, что вы не возражаете против использования этих технологий.
Подробнее Хорошо
vk pixel
Чем полезны боты для Telegram

Блог

24. 01. 2017г.
2

Как и обещали в предыдущем посте, в этом посте мы напишем своего бота для мессенджера Telegram. Этот мессенджер создал основатель ВКонтакте Павел Дуров. Telegram - чуть менее популярный аналог WhatsApp и Viber, однако более функциональный, в частности, позволяет создавать автоматических собеседников (ботов).
Нам потребуются:
1. Хостинг с PHP 5.4 (бот тестировался на 5.4, но должен работать на 5.3+).
2. Домен с SSL-сертификатом, доступный по HTTPS из внешней сети.
3. На хостинге должно быть доступно расширение CURL для PHP.
4. Базовые знания PHP.
Результат: бот для Telegram, который позволяет просмотреть содержимое папок на хостинге, например текстовые файлы в папках или картинки.
Telegram ЗАЧЕМ?

Указанный функционал бота приведен для примера, чем может быть полезен свой бот. А еще он может понадобиться для:
• мониторинга и управления вашими сервисами и сайтами на хостинге;
• при интеграции с сайтом - управления его контентом, например, ответы на комментарии - хотя в случае с Wordpress... уже есть готовые плагины :) НО! Сайты бывают разные;
• в случае портального решения для использования внутри компании - для уведомления сотрудников, для обмена контентом.

В любом из случаев, когда нет необходимости в очень сложных функциональных пользовательских интерфейсах ввода данных (таких как электронные таблицы), бот для Telegram предоставляет свой теплый ламповый текстовый интерфейс для интеграции с вашими системами. Вы делаете только логику - интерфейс уже есть. Впрочем, хватит уже о преимуществах...

Покажи мне код!

Для тех, кто больше любит читать код, нежели текст, то он такой (кликните)

Чтобы создать бота, необходимо задать две переменные в начале файла. Одна - ссылка на бота, доступная Telegram, вторая - ключ (token), полученный от бота FatherBot, который регистрирует всех ботов в Telegram.
Принципиально, в данном случае код поделен на три части по две функции:
1. Часть, отвечающая за транспортный уровень обмена с сервером Telegram через CURL. Это функции curl_custom_postfields и exec_curl_request. На них я останавливаться не буду, пробегите глазами - это просто отправка http-запросов к API Telegram.
2. Часть, оборачивающая для удобства методы обращения к всё тому же API. Это функции api_request и api_request_file. Собственно, в них особой прикладной логики работы также нет - это просто кодирование-декодирование обмена с Telegram.
3. Функции handle_command и process_message собственно уже и содержат основную прикладную логику бота - что по какому запросу он делает. В нашем случае, он умеет 4 команды: pwd (показать директорию где сейчас), ls (вывести что есть в директории), cd directory (перейти в директорию directory), cat file (прислать содержимое файла file, и если это картинка - то как картинку).

Заключение.

В примере кода, бот умеет еще спрашивать кодовое слово, прежде чем дать доступ к указанным запросам. Поскольку бот всегда различает чаты, он может запоминать связанную только с этим чатом информацию (например, сохранять в файле текущую директорию пользователя, как это сделано в примере). Бот, как и любой обычный PHP-код, может обращаться к базам данных, другим PHP-скриптам, а также - раз он знает идентификатор чата - может и отправлять сообщения не только в ответ, но и по собственной инициативе (например, по расписанию, заданному на сервере).

Вам интересно было бы ежедневно получать графический отчет-картинку о состоянии вашего хостинга как сообщение в Telegram? Или может статистику посещений сайта? А может, у вас есть идеи получше? Пишите в комментариях.
P.S. Если вы хотите испытать бота из примера - тоже пишите в комментариях, я лично открою вам его имя :)

2 комментария
Егор
07.02.2017
Спасибо за полезную статью!
Егор
07.02.2017
Спасибо за полезную информацию!
Назад
В корзине 0 товаров на 0 р.