Привет всем! Сегодня мы будем разбираться, как отправить данные из html-формы в Telegram?
Что такое форма обратной связи — вы знаете (уверен). Из лепят везде — даже там, где они не особо нужны. А еще вы знаете, что такое Telegram — очень удобный (наверное, самый удобный в настоящее время) мессенджер, и вообще — надстройка над Интернетом. Вообщем, растекаться по древу не буду, расскажу, как сделать форму обратной связи, данные из которой будут уходить в Telegram.
Для этого нам понадобиться:
1. Создать бота.
2. Создать группу, к которой мы должны присоединить нашего свежесозданного бота из пункта 1
3. Создать форму обратной связи, которая будет находиться на нашем сайте. Например, форма будет выглядеть так (это просто форма, она ничего не сделает — кнопку можете не нажимать усиленно 🙂 ):
Мне, если честно, лениво сейчас напрягаться, потому форма состоит только из одного поля, и кнопки 🙂
Итак, форма есть, а теперь — разберемся с кодом, который будет отправлять данные из html-формы в Telegram. Выглядит код максимально просто:
<?php $token = '5460612841:AAErLizvQ6GNvgAtagxw21Z8lwcJNkITD4Yg3I'; $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');
Попробовать все это в рабочем виде вы можете по вот этой ссылке 🙂 Переходите на нее - видите html-форму, в которую вводите текст и отправляете.
Впрочем - можно и не переходить по ссылке... вот форма в фрейме 🙂 :
Я смотрю иногда, как люди пишут что-то в форму, а в группу не добавляются, что бы посмотреть, как текст туда из формы уходит. Напоминаю - вот группа: https://t.me/html_to_telegram - заходите сюда, и смотрите, как там появляются ваши тексты, отправленные из формы 😉
ВАЖНО:
Хотите убедиться, что отправленный через html-форму текст доходит в Телеграм? Нет проблем - добавляйтесь в группу и смотрите, как бот выводит в эту группу все, что вы написали в html-форму в чате в Telegram.
КАПЕЦ КАК ВАЖНО: если вдруг ваше сообщение не дошло в группу - напишите мне в Телеграм или на почту. Мало ли, какой сбой - буду поправлять 🙂
Как всегда - в случае возникновения вопросов пишите на почту, или в Telegram.
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️