Skip to main content

Телеграм бот на PHP отправляющий сообщения с сайта

Телеграм бот на PHP отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто.

Так же стояла задача отправлять сообщения не только владельцу сайта, но и дублировать их в группу сотрудников компании.

Было решено создать телеграм бота, который будет принимать данные с помощью API и отправлять их пользователям.

Шаг 1. Создание телеграм бота

Боты в Telegram создаются через другого специального бота @BotFather. Нужно найти его и отправить ему команду /start.

Для создания нового бота отправляем следующую команду /newbot. После чего бот запросит имя вашего нового бота, оно обязательно должно заканчиваться на Bot. В случае успеха в ответ получаем уникальный токен бота, который понадобится для дальнейшей работы. И не забудьте добавить вновь созданного бота в ваши контакты отправив ему команду /start

Шаг 2. Получить токен и chat id бота

Чтобы отправить сообщение пользователю через бота достаточно вызвать определенный URL из PHP скрипта содержащий токен бота и внутренний ID чата chat id.

Токен бота у нас уже есть, а chat id можно получить 2 способами:

  1. Написать боту @ShowJsonBot любой текст. В ответ он вернет вам некие данные в JSON формате. Находим объект chat и в нем id — это и есть ваш chat id.
  2. В адресной строке ввести https://api.telegram.org/bot<YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. Находим объект chat и в нем id — это и есть ваш chat id.

Шаг 3. Разработка PHP скрипта для отправки сообщений в Telegram

Чтобы бот отправил сообщение, нужно сделать запрос к определенному URL содержащему токен бота, ваш chat id и значение text — текст, который бот выведет пользователю. Проверить работоспособность можно и напрямую через адресную строку браузера. Пример строки:

https://api.telegram.org/bot<YourBOTToken>/sendMessage?chat_id=<YourCHATID>&text=<YourMESSAGE>

<YourBOTToken> — это токен вашего бота, <YourCHATID> — ваш chat id и <YourMESSAGE> — это текст сообщения.

Запрос к URL будем делать с помощью cURL :

// токен бота
 define('TELEGRAM_TOKEN', '123456789:XXXXXXXXXXXXXXXXXXXXXXX');

 // ваш внутренний ID
 define('TELEGRAM_CHATID', '123456789');

$message = 'Сообщение';

$ch = curl_init('https://api.telegram.org/bot'.TELEGRAM_TOKEN.'/sendMessage?chat_id='.TELEGRAM_CHATID.'&text='.$message); // URL

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Не возвращать ответ

curl_exec($ch); // Делаем запрос
curl_close($ch); // Завершаем сеанс cURL

Как видите все довольно просто. В переменной $message можно передавать любой текст, который будет отправляться ботом пользователю.

Прокси для телеграм бота

В связи с блокировкой телеграм возможно сообщения не будут отправляться, так как скрипт не сможет запросить нужный URL. Для этого можно воспользоваться прокси сервером.

Прокси сервера можно найти на сайтах-списках прокси или купить. Чтобы соединиться через прокси-сервер в параметрах вызова cURL добавляем несколько строк

curl_setopt ($ch, CURLOPT_PROXY, "127.0.03.1:8080");
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

Где 127.0.03.1:8080 — это адрес и порт прокси-сервера и CURLPROXY_SOCKS5 — это тип соединения, в данном случае SOCKS5

Добавить бота в группу телеграм

Чтобы бот мог отправлять сообщения в группу, необходимо его туда добавить. Сделать это можно в настройках группы в разделе Добавить участника. В поиске необходимо ввести имя вашего бота и нажать OK.

Теперь в настройках скрипта нужно изменить chat id пользователя, на chat id нужной группы. Для этого предварительно нужно написать любое сообщение в чат, а затем в адресной строке ввести https://api.telegram.org/bot<YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. После находим объект chat и в нем id — это и будет chat id группы.

Заключение

Как видите отправлять сообщения в телеграм не так уж и сложно. А пример PHP скрипта приведенный здесь, можно модернизировать под любые нужны.

А если немного изучить документацию, по аналогии можно создавать аналогичных ботов для приема заявок с сайта в Viber или например ВКонтакте.

Похожие записи
Отправка сообщений в Telegram из Contact Form 7

Мы уже рассматривали как отправлять сообщения в телеграмм из обычного PHP скрипта и заказы из... Читать далее

Отправка заказов из OpenCart в группу Telegram

Мы уже рассматривали, как создать бота, который отправляет сообщения с сайта в мессенджер Telegram. Сегодня... Читать далее

Парсер XML PHP с использованием SimpleXML. Примеры

Существует несколько способов парсить XML-данные с использованием PHP, один из которых - SimpleXML. В предыдущей... Читать далее

Интеграция/чтение RSS PHP. PHP скрипт вывода RSS

В PHP начиная с 5 версии есть встроенная библиотека для работы с XML данными SimpleXML.... Читать далее

Отправка письма с вложениями на PHP и AJAX

Мы уже рассматривали, как сделать форму обратной связи на PHP и Ajax. Сегодня мы модернизируем... Читать далее

PHP работа с изображениями. Библиотека PHP GD

PHP является мощным языком сценариев, и существует множество мощных плагинов. Одним из них является GD,... Читать далее

Добавить комментарий

*

code