Привет всем! Сегодня мы будем разбираться, как отправить данные из 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.'&parse_mode=html&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');
Как всегда — в случае возникновения вопросов пишите на почту, или в Telegram.