Для примера возьмем форму из предыдущей статьи Форма обратной связи на php и научим ее передавать данные в мессенджер телеграм.
Форма состоит из двух файлов: index.php с html разметкой, и обработчика telegram.php, который отправляет письмо с данными на почту и в telegram.
Создайте в корне сайта файл index.php c таким содержимым, или поместите html — разметку формы на страницу вашего сайта:
Далее задайте боту имя (например mynewbot), и никнейм. Никнейм должен быть уникальным а так же обязательно оканчиваться на bot. Например, coderistu_bot. Если имя для бота уже занято, то вы увидите такое сообщение: Sorry, this username is already taken. Please try something different.
Если имя не занято, то придет сообщение об успешной регистрации бота, где будет указан его токен.
В этой же директории на сервере, где лежит файл index.php нужно создать файл — обработчик формы telegram.php в котором прописываются полученные ранее токен телеграм и chat_id.
if (!empty($_POST[’email’]) (!empty($_POST[‘text’]))) < //проверяем поля на пустоту
Не приходит код в Telegram? Актуальный способ
$to = «ваша почта» ; // куда отправляем письмо
$mail = ‘Почта: ‘.$_POST[’email’]; // получаем данные из формы
$text=’Сообщение:’ .$_POST[‘text’]; // получаем данные из формы
$message=$mail.»rn». htmlentities($text); // формируем сообщение
$subject = «Письмо с сайта»; // тема письма
mail($to, $subject, $message); // отправка письма
$token=’ваш_токен’; // ваш токен телеграм
$chat_id=’ваш id’; // ваш id телеграм
if (isset ($token) ($chat_id)) $sendToTelegram = fopen(«https://api.telegram.org/bot/sendMessage?chat_id=text=$mail%0A$text»,»r»); // отправка данных c формы в телеграм
>
echo «Письмо отправлено!»; // сообщение при отправке
> else echo «Заполните все поля»; // сообщение при ошибке
>
?>
setInterval(function()< document.location.replace(«index.php»); >, 3000);
Как сделать перенос строки в telegram?
Т. к. телеграм не воспринимает php символы для переноса строки (rn, PHP_EOL и пр.), то для решения этой проблемы необходимо использовать символ %0A.
Источник: coderistu.ru
Как отправить данные из html-формы в Telegram?
Привет всем! Сегодня мы будем разбираться, как отправить данные из html-формы в Telegram?
Что такое форма обратной связи — вы знаете (уверен). Из лепят везде — даже там, где они не особо нужны. А еще вы знаете, что такое 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.’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.’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.
Источник: lavrynenko.com
Как с помощью aiogram отправить сообщение в канал Телеграм?
Хотел написать бота благодаря aiogram, который сможет отправлять сообщения в канал Телеграм. Но появилась проблема, что я вовсе не знаю, как это сделать. Немного кода, который есть сейчас:
Я не понимаю как мне через message отправить сообщение. Если у кого-то есть возможность отправьте пример кода, по отправке сообщение в Телеграм канал через aiogram.
Отслеживать
задан 26 фев 2021 в 18:07
Stop genocide of UA Stop genocide of UA
859 2 2 золотых знака 7 7 серебряных знаков 27 27 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
import asyncio from aiogram import Bot, types API_TOKEN = ‘BOT TOKEN HERE’ CHANNEL_ID = # это должен быть int, например -1006666666666 bot = Bot(token=API_TOKEN, parse_mode=types.ParseMode.HTML) async def send_message(channel_id: int, text: str): await bot.send_message(channel_id, text) async def main(): await send_message(CHANNEL_ID, ‘Hello!’) if __name__ == ‘__main__’: asyncio.run(main())
Отслеживать
ответ дан 26 фев 2021 в 18:11
Vladyslav Yurchenko Vladyslav Yurchenko
479 3 3 серебряных знака 11 11 бронзовых знаков
Если попытаться вызвать функцию произойдёт ошибка name ‘message’ is not defined , если не передавать этот параметр, при вызове функции произойдёт другая ошибка, что тогда делать?
26 фев 2021 в 18:22
изменил код в ответе
26 фев 2021 в 20:42
asyncio.run(main())
26 фев 2021 в 21:23
для того чтобы узнать id чата, введи код ниже в функцию выше вместо строки чтобы отправить что-нибудь в группу, id чата должен будет прийти тебе в лс
await bot.send_message(message.from_user.id, message.chat.id)
Отслеживать
ответ дан 4 июл 2022 в 20:26
13 2 2 бронзовых знака
- python
- telegram-bot
- aiogram
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com