В данном уроке вы научитесь отправлять нужную вам информацию личным сообщением в телеграм.

Построение сценария

Чтобы отправить что-либо в телеграм, сначала нам нужно записать информацию в переменную. Вы можете собрать несколько параметров, записать их в переменные, и все эти переменные передать в телеграм. Перед отправкой данных у вас должен существовать участок сценария с записью в переменные.

Пройдите этот урок для построения сценария.

После прохождения урока, у вас будут 5 переменных - для имени, фамилии, телефона, имейла и вида услуги.

Опубликуйте своего бота в канал Telegram

Пожалуйста, следуйте данной инструкции, чтобы опубликовать бота в канал Telegram.

Если вы уже добавили канал Telegram, переходите к следующему пункту.

Получение chat_id

Для того, чтобы получить сообщение в телеграм, бот должен знать, кому его отправлять. Вы можете получить chat_id своего аккаунта (или аккаунта человека, которому вы хотите отправлять данную информацию), чтобы затем с помощью бота отправлять сообщения.

Чтобы получить chat_id, создайте в сценарии новый экран с текстом:

$rawRequest.message.from.id

Если вы хотите отправлять сообщения не в личные сообщения, а в группу в телеграме, то обратитесь к этой инструкции.

Поместите этот экран в начало сценария, чтобы этот экран был в левом верхнем углу. Таким образом, этот экран будет первым при запуске бота.



Нажмите Опубликовать и дождитесь сообщения о том, что сценарий опубликован на канале Телеграм.




Затем перейдите к своему боту в Telegram (не в тестовом виджете!) и отправьте боту:

/start

Если вы хотите, чтобы сообщения приходили не вам, а другому человеку, то просто отправьте этому человеку ссылку на бота. Если это будет первый раз, когда этот человек будет общаться с ботом, то бот сразу же пришлёт значение chat_id. Если же этот человек ранее уже писал этому боту, то попросите человека отправить боту /start, чтобы получить chat_id.

Бот пришлет вам нужное значение:



Скопируйте и вставьте в блокнот число, которое прислал бот.




Удалите экран с текстом $rawRequest.message.from.id. Он больше не нужен.



Отправка данных

Следующий шаг — отправляем данные, полученные от клиента. Для этого в сценарии, после сбора всей нужной информации, должен быть блок HTTP-запрос. Мы можем с помощью одного запроса передать сразу несколько переменных:



Блок должен быть оформлен следующим образом:

метод Get



Сформируем URL.

Для этого скопируйте в блокнот строку:
https://api.telegram.org/bot<token>/sendMessage



Затем перейдите в телеграме в канал BotFather и скопируйте токен вашего бота, который был сгенерирован, когда вы публиковали канал:



В блокноте выделите <token>



И вместо <token> вставьте токен из телеграма:


Получится что-то примерно такое:



Теперь выделите всё, что получилось и вставьте в поле URL HTTP-запроса.



Оформим поле BODY.

В BODY нам нужно указать:
- значение chat_id, которое мы получили ранее на шаге 3 (набор цифр);

- все переменные, которые мы до этого собрали в сценарии.

Если вы повторили урок по сбору контактных данных, то у вас в сценарии была получена следующая информация:

Ваше имя: $name
Ваша фамилия: $lastname
Ваш телефон: $PHONE
Ваш email: $EMAIL
Вид услуги: $service


Поэтому будем передавать эти переменные.

Итак, нужно вставить значение chat_id и перечислить переменные, которые были в сценарии до отправки.

Обратите внимание на отступы и знаки препинания! Рекомендуем не набирать, а копировать-вставлять.

{
"chat_id": 123456789,
"text": "Имя клиента: $name $lastname, номер телефона: $PHONE, имейл: $EMAIL, Вид услуги: $service"
}




Нажмите Сохранить.

Готово, мы оформили Http-запрос для отправки данных.

Проверяем статус отправки

От логики "Завершен успешно" добавляем связь к новому экрану, содержащему сообщение об успешной отправке данных. Например, “Спасибо, ваши данные успешно отправлены!”

От логики “Завершен с ошибкой” делаем связь с экраном, содержащим текстовый блок “Ошибка $httpStatus”. Данный блок поможет нам понять, в чём неполадка, если http-запрос не будет успешным.



Теперь мы можем протестировать сценарий.

Нажмите Тестировать. Поговорите с ботом. По итогу диалога нужная информация должна прийти в телеграм.

Обратите внимание, что бот будет присылать вам сообщение в вашу беседу с ботом.
Если вы ожидаете, что вам придет личное сообщение от какого-то другого аккаунта, вас может смутить такое поведение. Но в дальнейшем, когда другие люди будут писать боту, и вы будете получать сообщения от бота, вам будет более понятно, что происходит. Попросите другого человека прислать боту своё имя и телефон, и тогда вы получите сообщение от бота.

Возможные неполадки:

Вы нажимаете Тестировать, и бот выдает ошибку.

Проверьте, не используете ли вы в сценарии $rawRequest для получения имени. Если да, то тестировать нужно в канале Телеграм. В тестовом виджете ошибка будет ожидаемо выпадать, так как бот пытается получить информацию из канала, которого нет.

"Ошибка -1"

Проверьте правильность URL в http-запросе. Возможно, в самом URL или в конце URL есть пробел либо по ошибке вставлен неверный символ.

"Ошибка 400"

1) Проверьте правильность оформления http-запроса. Попробуйте удалить телеграм-бота в BotFather, создать заново и использовать заново сгенерированный токен.

2) Проверьте правильность оформления поля BODY (синтаксис).

Вот образец правильного оформления поля BODY:

Первая и последняя строчка должны содержать только фигурные скобки


Должны быть отступы (можете нажать Tab либо нажать пробел четыре раза):


"chat_id": должно быть написано именно так (проверьте на наличие опечаток, а лучше скопируйте и вставьте):

"chat_id":

Значение chat_id должно быть не 123456789, а реальное значение, которое вы скопировали на шаге 3 (123456789 это пример для урока);

Строка, содержащая "chat_id": должна оканчиваться запятой

После двоеточий должны быть пробелы:


Значение передаваемого текста сообщения должно быть в таких кавычках: " "

Была ли эта статья полезна?
отменить
Спасибо!