Ниже рассматривается процесс отправки данных с сайта в телеграм через php-скрипт. Зачем это нужно? На момент написания статьи, этот способ кажется более удобным и предпочтительным, нежели отправка данных на email. О каких данных идет речь? Наиболее популярное применение — это отправка данных форм (заявки, заказы, обратные звонки etc) и отправка отчетов (например, о работе фоновых заданий). В примере ниже рассматривается обработчик данных формы обратного звонка.
Алгоритм отправки сообщения в ТГ с сайта состоит из нескольких шагов и, на первый взгляд, может показаться сложнее, чем вызов php mail(); для отправки уведомлений на электронную почту.
Итак, какие шаги нужно пройти, для реализации данной задачи?
- Регистрация бота и получение токена
- Добавление бота в чат
- Написание скрипта
Регистрация бота
Идем к @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 (без перезагрузки страницы).