Рассмотрим простой сценарий отправки сообщения в канал телеграма с помощью бота. Скрипт будет написан на языке программирования PHP.
Прежде чем создать скрипт, нам нужно:
Приступим.
Открываем телеграм и ищем пользователя @BotFather :
Переходим в чат с найденным BotFather и запускаем бота:
Создаем бота, последовательно введя команду /newbot и отвечая на запросы мастера. Например:
/newbot
remontka_digest
remontkaDigestBot
* где:
В результате мы должны получить сообщение на подобие:
Done! Congratulations on your new bot. You will find it at t.me/remontkaDigestBot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you’ve finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
1234567890:ABCDEFGHIYKLMNOPI8e48SeTHIGfzD8W4E
Keep your token secure and store it safely, it can be used by anyone to control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
* где 1234567890:ABCDEFGHIYKLMNOPI8e48SeTHIGfzD8W4E — токен бота. Его храним в безопасном месте.
Бот создан. Идем дальше.
Открываем наш телеграм канал, в который будут отправляться сообщения ботом. Добавляем бота в подписчики:
Мессенджер предложит назначить бота администратором. Соглашаемся и настраиваем разрешения. Как минимум, нужно разрешить отправку сообщений.
Теперь у нас есть все, чтобы сделать отправку сообщения в канал телеграма с помощью бота.
Нам, всего, нужно сделать запрос типа GET с синтаксисом:
https://api.telegram.org/bot<BotID>/sendMessage?chat_id=<ChannelName>&text=<Text>
Проще всего, для этого использовать утилиту командной строки curl. Для Windows она доступна в Powershell. Для Linux необходима установка (команда зависит от типа ОС):
а) Linux DEB (Debian / Ubuntu / Astra):
apt update
apt install curl
б) Linux RPM (Rocky / CentOS / РЕД ОС):
yum install curl
Теперь приведем реальный пример отправки сообщения с помощью curl.
Вводим команду:
curl ‘https://api.telegram.org/bot1234567890:ABCDEFGHIYKLMNOPI8e48SeTHIGfzD8W4E/sendMessage?chat_id=@remontka_ru&text=test’
* где:
Проверяем сообщение в телеграм канале — мы должны увидеть наше тестовое сообщение:
Это значит, что наш бот может отправлять сообщения в канал.
API телеграма реализовано с помощью сервиса, который отвечает на HTTP-запросы. В php данные запросы удобнее всего отправлять с помощью модуля curl. Необходимо убедиться, что он установлен.
Если наш скрипт будет запускаться из виртуального хостинга, скорее всего, данное расширение уже установлено в системе. В противном случае нужно поиграть с настройками хостинга или обратиться в техническую поддержку.
Если запуск скрипта выполняется на собственном сервере, установим расширение самостоятельно.
а) Linux DEB (Debian / Ubuntu / Astra):
apt install php-curl
Если у нас установлено несколько версий PHP, возможно, придется уточнить версию, для которой необходима установка расширения, например:
apt install php8.2-curl
б) Linux RPM (Rocky / CentOS / РЕД ОС):
yum install php-curl
Теперь мы готовы писать скрипт.
Данный скрипт отправит простое текстовое сообщение в созданный ранее телеграм канал:
Описание скрипта:
Строка | Описание |
---|---|
3 | Переменная с указанием на имя канала, куда будет отправлено сообщение. У бота должны быть права отправки сообщения в данный канал. |
4 | Токен, который мы получили, когда создали бота. |
5 | Текст сообщения, которое будет отправлено в телеграм. |
7 | Прежде чем отправить сообщение, выполняем ее URL-кодирование, так как текст будет отправлен как часть GET-запроса. |
8 | Создаем переменную, значением которой будет строка обращения к Telegram API. Данная строка содержит токен, имя канала и текстовое сообщение. Действие будет sendMessage , то есть, отправка сообщения. |
10 — 15 | Инициализируем настройку curl. Указываем, что для запроса будет использоваться переменная $url. Также ответ от сервера должен возвращаться в виде строки, а не в поток вывода. |
16 | Выполняем запрос curl. |
17 | Удаляем все дескрипторы для запроса, чтобы не занимать память сервера. |
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…