Разбор метода обращения к API Telegram 👇
sendMessageВ данной статье мы подробно разберем метод обращения к API Telegram "SendMessage": зачем необходим, ключевые составляющие запроса и примеры.
sendMessage

Данный метод используется для отправки текстовых сообщений пользователям.
В документации вы можете ознакомиться с 4-мя ключевыми составляющими:
- Parametr - название параметров
- Type - тип параметра (целое число, строка, логическое значение и т.д.)
- Required - необходимость (необходим/необязателен)
- Description - описание параметра.
В рамках данной статьи - мы познакомимся с "необходимыми" параметрами, которые должны включаться в любой запрос с использованием метода SendMessage. Их два:
- сhat_id - это идентификатор чата, в который необходимо отправить сообщение.
Если нам необходимо отправлять сообщение каждому пользователю, который взаимодействует с ботом, мы можем использовать для данного параметра глобальную переменную на платформе Leadtex "{{telegram_id}}".
Данная переменная автоматически подтягивает id чата с конкретным пользователем.
Если же нам необходимо отправить сообщение конкретному человеку, который находится в боте, мы можем притянуть его постоянный id с помощью бота https://t.me/getmyid_bot.
Пример:
Отправка сообщения любому пользователю в боте:
https://api.telegram.org/bot(API Token)/sendMessage?chat_id={{telegram_id}}
Отправка сообщения конкретному пользователю в боте:
https://api.telegram.org/bot(API Token)/sendMessage?chat_id=111111111 (id полученный в боте "Your user ID").
Также с помощью данного метода мы можем настроить отправку сообщений в определенную группу/канал в Telegram (например, для отправки заявок в чат менеджеров).
Для этого нужно:
- Сделать бота администратором группы (канала)
- Предоставить боту права на отправку сообщений.
В запрос для параметра сhat_id нужно указать ID чата или канала, который в также можете получить в боте, переслав ему запись (сообщение) из чата/канала.
Запрос будет выглядеть следующим образом:
https://api.telegram.org/bot(API Token)/sendMessage?chat_id=-1111111111111 (id полученный в боте "Forwarded from chat").
Вторым обязательным параметром метода sendMessage является "text" - это непосредственно текст сообщения, который вы хотите отправить.
Важно помнить, что:
- Ограничение символов в сообщении - 4096.
Пример итогового запроса: https://api.telegram.org/bot(API Token)/sendMessage?chat_id={{telegram_id}}&text=ваш текст.
В целом этого достаточно для использования метода sendMessage при обращении к API Telegram. Но в рамках данного разбора, мы также познакомимся с параметром "reply_markup".
"reply_markup"- это параметр, позволяющий формировать встроенную клавиатуру. Сегодня мы изучим готовый пример запроса для формирования инлайн клавиатуры.
Важно! Для того, чтобы сформировать кнопки, нам необходимо использовать формат передачи данных JSON.
Чтобы вы всегда могли проверить запрос на наличие лишних символов, а также корректное выравнивание - оставляем вам ссылочку на полезный сервис: https://jsonformatter.org/.

Пример готового запроса:
https://api.telegram.org/bot(API Token)/sendMessage?chat_id={{telegram_id}}&text=ваш текст&reply_markup={
"inline_keyboard": [
[
{
"text": "Название кнопки",
"callback_data": "Значение"
},
{
"text": "Название кнопки",
"callback_data": "/b12345566"
}
]
]
}
Почему в первом случае использовано некое "Значение", а во втором - набор чисел? Давайте разбираться.
Формат, когда мы используем конкретное значение (текст/число) подходит для подключения блока HTTP к блоку "Переключатель".
А формат /b12345678 позволяет перенаправлять пользователей на конкретный блок в рамках сценариев бота. Это уникальный ID блока, который вы можете скопировать в сценарии.

И финальная рекомендация! Для того, чтобы проверить, корректно ли отработал запрос - воспользуйтесь функцией "Выводить тело ответа в чат".
Если запрос отрабатывает корректно вы увидите в ответе "ok":true,"result" и подробное описание ответа сервера.

Не забудьте отключить вывод ответа в чат, чтобы данное сообщение не отображалось пользователям 😉