Отправка данных в телеграм с сайта

Ниже рассматривается процесс отправки данных с сайта в телеграм через php-скрипт. Зачем это нужно? На момент написания статьи, этот способ кажется более удобным и предпочтительным, нежели отправка данных на email. О каких данных идет речь? Наиболее популярное применение — это отправка данных форм (заявки, заказы, обратные звонки etc) и отправка отчетов (например, о работе фоновых заданий). В примере ниже рассматривается обработчик данных формы обратного звонка. 

Отправка отбойки в телеграм с сайта

Алгоритм отправки сообщения в ТГ с сайта состоит из нескольких шагов и, на первый взгляд, может показаться сложнее, чем вызов php mail(); для отправки уведомлений на электронную почту.

Итак, какие шаги нужно пройти, для реализации данной задачи?

  1. Регистрация бота и получение токена
  2. Добавление бота в чат
  3. Написание скрипта

Регистрация бота

Идем к @BotFather в ТГ, вызываем команду /start. Далее задаем имя и username и получает наш токен для отправки сообщений.

Добавление бота в чат

Следующий шаг — это создание группы и добавление туда бота. Здесь тоже все достаточно просто:

  • Создаем группу
  • Активируем нашего бота (находим его в поиске и вступаем с ним в переписку через /start)
  • Добавляем нашего бота в созданную группу

Теперь нужно узнать ID группы: Для этого в адресную строку браузере вбиваем https://api.telegram.org/botXXXXX/getUpdates (XXXXX — это наш токен, который мы получили от Botfather’а). На открывшейся странице с данными нам нужно найти chatID — это число с минусом (например, -743234234).

Написание скрипта

Теперь у нас есть всё для написания скрипта (Чат, его ID и токен).

Итак, php-обработчик формы будет выглядеть примерно следующим образом:

<?

//Всякие данные с формы (зависят от того, что вы отправляете)

$name = $_POST['form-name'];
$phone = $_POST['form-phone'];



//Токен, полученный от botfather'а

$token = "123456789:test-testtest";

//Id чата

$chat_id = "-123456789";

//Формируем сообщение \n - используется для перехода на новую строку

$txt = urlencode("Новая заявка (обратный звонок) \nИмя: $name \nТелефон: $phone");

//Отправляем сообщение в ТГ

$url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}";
$sendToTelegram = fopen($url,"r");

?>

Собственно, это всё. Кажется, что не сильно сложнее, чем отправка заявки на электронную почту. Для тех, кто прикручивает скрипт к кастомной форме на сайте, возможно, будет полезна статья по отправке формы через ajax (без перезагрузки страницы).