Как отправить данные из html-формы в Telegram

Как отправить данные из html-формы в Telegram?

Привет всем! Сегодня мы будем разбираться, как отправить данные из html-формы в Telegram?

Что такое форма обратной связи — вы знаете (уверен). Из лепят везде — даже там, где они не особо нужны. А еще вы знаете, что такое Telegram — очень удобный (наверное, самый удобный в настоящее время) мессенджер, и вообще — надстройка над Интернетом. Вообщем, растекаться по древу не буду, расскажу, как сделать форму обратной связи, данные из которой будут уходить в Telegram.
Для этого нам понадобиться:
1. Создать бота.
2. Создать группу, к которой мы должны присоединить нашего свежесозданного бота из пункта 1
3. Создать форму обратной связи, которая будет находиться на нашем сайте. Например, форма будет выглядеть так (это просто форма, она ничего не сделает — кнопку можете не нажимать усиленно 🙂 ):


 

Мне, если честно, лениво сейчас напрягаться, потому форма состоит только из одного поля, и кнопки 🙂
Итак, форма есть, а теперь — разберемся с кодом, который будет отправлять данные из html-формы в Telegram. Выглядит код максимально просто:

<!--?php $token = '5460612841:AAErLizvQ6GNvgAtagxwZ8lwcJNkITDYg3I'; $chat_id = '-822748432'; $text = 'Текст из html-формы: '.$_POST['input_text_box']; $url = 'https://api.telegram.org/bot'.$token.'/sendMessage?chat_id='.$chat_id.'&amp;parse_mode=html&amp;text='.$text; $handle = curl_init($url); curl_setopt($handle, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($handle); header('Location: form_to_telegram.html'); ?-->

Сама логика работы кода следующая:
1. Мы знаем, что можем работать с Telegram, отправляя ему команды в api через адресную строку браузера.
2. Значит, нам нужно лишь:
— знать токен нашего бота (мы получаем его в момент создания бота)
— знать chat_id (очень просто получить chat_id перейдя по ссылке:
https://api.telegram.org/botTOKEN>/getUpdates, только вместо TOKEN поставьте токен, который вы получили при создании своего бота 😉
И да — если вы вдруг переходя по ссылке получаете нечто вроде:
{«ok»:true,»result»:[]}
добавьте своего бота к своей группе, куда и будут приходить сообщения из html-формы 😉 )
— сформировать итоговую строку, которая будет содержать в себе:
— ссылку на Telegram API
— токен бота
— команда для бота (в нашем случае — sendMessage
— chat_id (где и как его получить я писал несколькими строками выше)
— режим кодировки текста
— и, собственно, сам текст, который нам нужно получить из html-формы.

Давайте сделаем все это:
— chat_id — есть
— токен — есть
— ссылка на Telegram API — есть
— текст, который мы получаем из html-формы — имеется (мы получаем его вот здесь: $text = ‘Текст из html-формы: ‘.$_POST[‘input_text_box’];
Осталось сформировать итоговую строку для браузера:
$url = ‘https://api.telegram.org/bot’.$token.’/sendMessage?chat_id=’.$chat_id.’&parse_mode=html&text=’.$text;

и передать эту строку браузеру:

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($handle);
header('Location: https://lavrynenko.com/form_to_telegram.html');

Попробовать все это в рабочем виде вы можете по вот этой ссылке 🙂 Переходите на нее — видите html-форму, в которую вводите текст и отправляете.

Впрочем — можно и не переходить по ссылке… вот форма в фрейме 🙂 :

ВАЖНО:
Хотите убедиться, что отправленный через html-форму текст доходит в Телеграм? Нет проблем — добавляйтесь в группу и смотрите, как бот выводит в эту группу все, что вы написали в html-форму в чате в Telegram.

КАПЕЦ КАК ВАЖНО: если вдруг ваше сообщение не дошло в группу — напишите мне в Телеграм или на почту. Мало ли, какой сбой — буду поправлять 🙂

Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.