HTTP-запросы — это мощный инструмент, который превращает простого чат-бота в полноценную систему, способную взаимодействовать со сторонними сервисами. Если на платформе нет готового блока для нужной функции, HTTP-запрос позволяет реализовать практически любую задачу.
В этом руководстве мы детально разберем блок HTTP-запроса и метод POST на практическом примере. Вы научитесь отправлять текстовые сообщения и изображения в Telegram через Telegram Bot API, создавать кнопки программным способом и работать с глобальными переменными для удобства.
Это первая часть серии материалов об HTTP-запросах. Здесь мы сосредоточимся на методе POST — отправке данных на сервер. Это фундаментальный навык, который откроет вам доступ к тысячам API и позволит создавать ботов любой сложности.
Подготовка: подключение Telegram
Прежде чем работать с HTTP-запросами к Telegram Bot API, нужно правильно подключить мессенджер к платформе.
1. Подключение бота
Если вы еще не подключили Telegram к своему боту на платформе Watbot.ru, сделайте это в первую очередь. На канале есть отдельное подробное видео с пошаговой инструкцией по работе с BotFather — там объясняется, как создать бота, получить API-токен и подключить мессенджер:
После подключения у вас будет API-токен — длинная строка вроде
123456789:ABCdefGHIjklMNOpqrsTUVwxyz. Скопируйте его, он понадобится для следующего шага.
2. Создание глобальной переменной для токена
Токен — это конфиденциальная информация, которую придется использовать во многих местах сценария. Чтобы не копировать эту длинную строку каждый раз, создадим глобальную переменную.
Перейдите в раздел «Списки» в левом меню платформы. Найдите пункт «Глобальные переменные» и нажмите на него.
Нажмите кнопку создания новой переменной. Заполните поля:
Имя переменной — назовите её «token» (или «токен» — как вам удобнее).
Значение — вставьте скопированный API-токен вашего бота.
Нажмите «Создать».
Теперь вместо того чтобы каждый раз вставлять длинный токен, вы просто будете писать
{{token}} (имя переменной в двойных фигурных скобках), и платформа автоматически подставит токен.
Это не только удобнее, но и безопаснее — если токен скомпрометирован, достаточно изменить значение в одном месте (в глобальной переменной), а не искать и заменять во всех блоках сценария.
Знакомство с блоком HTTP-запрос
Давайте изучим инструмент, с которым будем работать сегодня.
Добавление и обзор блока
Вернитесь в сценарий вашего бота. В верхнем правом углу нажмите кнопку «Добавить блок».
В открывшемся меню найдите блок «HTTP запрос» — он обычно находится в разделе «Часто используемые». Нажмите на него, чтобы добавить в сценарий.
Откройте настройки блока. Вы увидите несколько полей и опций:
URL — здесь указывается адрес, куда будет отправлен запрос. Это основное поле, которое мы будем заполнять.
Метод — тип HTTP-запроса. На платформе доступно пять методов: GET, POST, PUT, PATCH, DELETE. Сегодня мы работаем с POST.
Заголовки — дополнительные метаданные запроса (авторизация, тип контента и т.д.). Для нашей задачи заголовки не понадобятся.
Body — данные, которые отправляются на сервер (актуально для POST, PUT, PATCH). Мы будем передавать данные прямо в URL, поэтому тело оставим пустым.
Тайм-аут — время ожидания ответа от сервера в секундах. По умолчанию стоит 5 секунд. Можете оставить как есть или увеличить, если сервер отвечает медленно.
Меню — раздел для настройки кнопок, которые появятся после выполнения запроса.
Дополнительно — различные опции вывода и обработки ответа. Пока оставим всё выключенным.
Назначение блока HTTP-запрос
Зачем нужен этот блок? Это инструмент, который позволяет боту обмениваться данными со сторонними системами и сервисами с помощью HTTP-запросов.
Если на платформе нет готового блока для нужной функции (например, отправки сообщения определенного формата, работы со специфическим API, интеграции с уникальным сервисом), HTTP-запрос позволяет реализовать это самостоятельно.
Это делает возможности платформы практически безграничными — вы не ограничены предустановленными блоками и можете интегрировать любой сервис, у которого есть API.
Метод POST: отправка данных
Давайте разберемся с методом, который будем использовать.
Что такое метод POST
POST — это HTTP-метод, предназначенный для отправки данных на сервер. Когда вы заполняете форму на сайте и нажимаете «Отправить», обычно используется именно POST.
В контексте Telegram Bot API метод POST позволяет:
- Отправлять сообщения пользователям
- Отправлять изображения, видео, документы
- Создавать кнопки и клавиатуры
- Редактировать и удалять сообщения
- Управлять группами и каналами
Отличие от GET: метод GET используется для получения данных (например, узнать курс валюты, получить прогноз погоды). POST — для отправки (например, создать заказ, отправить форму, опубликовать сообщение).
В настройках блока выберите метод POST из выпадающего списка.
Отправка текстового сообщения
Теперь создадим первый рабочий HTTP-запрос — отправим текстовое сообщение пользователю.
1. Изучение документации Telegram Bot API
Перейдите на сайт Telegram Bot API. Это официальная документация с описанием всех доступных методов.
Страницу можно перевести на русский язык через браузер, но лучше оставить английскую версию — нам придется копировать команды и параметры, которые должны быть на английском.
Прокрутите страницу вниз и найдите раздел «Available methods» (доступные методы). Здесь перечислены все действия, которые может выполнять бот.
Найдите метод «sendMessage» и нажмите на него. Откроется подробное описание.
2. Параметры метода sendMessage
В описании метода вы увидите таблицу с параметрами. Обратите внимание на колонку «Required» (обязательный):
- chat_id (Required: Yes) — идентификатор чата, куда отправляется сообщение. Обязательный параметр.
- text (Required: Yes) — текст сообщения. Обязательный параметр.
- parse_mode (Required: Optional) — режим форматирования текста (HTML, Markdown). Необязательный параметр.
- reply_markup (Required: Optional) — клавиатура с кнопками. Необязательный параметр.
Для базовой отправки сообщения нужны только два обязательных параметра:
chat_id и text.
Это универсальный принцип работы с API: всегда есть обязательные параметры (без них запрос не выполнится) и опциональные (добавляют дополнительные возможности).
3. Формирование URL запроса
Вернитесь в начало документации. Найдите базовый URL для всех запросов к Telegram Bot API. Он выглядит примерно так:
https://api.telegram.org/bot/METHOD_NAME
Где:
— ваш API-токенMETHOD_NAME— название метода (в нашем случаеsendMessage)
Скопируйте этот URL. Вернитесь на платформу Watbot.ru и вставьте в поле «URL» блока HTTP-запрос.
Теперь нужно подставить правильные значения.
4. Подстановка токена через глобальную переменную
В URL замените
на нашу глобальную переменную. Помните, мы создали переменную с именем «token»?
Было:
https://api.telegram.org/bot/METHOD_NAME
Стало:
https://api.telegram.org/bot{{token}}/METHOD_NAME
Обратите внимание на формат: переменная пишется в двойных фигурных скобках
{{имя_переменной}}. Именно так платформа понимает, что нужно подставить значение переменной, а не использовать слово «token» буквально.
5. Указание метода
Теперь замените
METHOD_NAME на конкретный метод. Вернитесь в документацию, скопируйте название метода «sendMessage» (именно так, с соблюдением регистра!).
Стало:
https://api.telegram.org/bot{{token}}/sendMessage
6. Добавление параметров
После названия метода поставьте знак вопроса ? — это обозначает начало параметров запроса.
Теперь добавим первый обязательный параметр — chat_id. Вернитесь в документацию, скопируйте название параметра
chat_id.
Вставьте после знака вопроса:
?chat_id=
После знака равно нужно указать значение. Здесь тоже используем глобальную переменную — Telegram ID пользователя. На платформе есть встроенная переменная для этого.
Добавьте:
?chat_id={{telegram_id}}
Переменная
telegram_id автоматически подставляет идентификатор пользователя, который общается с ботом в данный момент.
Теперь добавим второй обязательный параметр — text. Параметры в URL разделяются символом амперсанд &.
Добавьте:
&text=
После знака равно напишите текст, который хотите отправить. Например:
&text=Привет, это платформа Watbot!
Итоговый URL выглядит так:
https://api.telegram.org/bot{{token}}/sendMessage?chat_id={{telegram_id}}&text=Привет, это платформа Watbot!
Сохраните настройки блока.
7. Установка связей
Критически важный момент! Между блоками должны быть связи, иначе сценарий не выполнится.
Проведите связь от стартового блока к блоку HTTP-запрос. Наведите курсор на черную точку стартового блока, зажмите левую кнопку мыши и протяните синюю стрелку к HTTP-блоку.
Связь отображается синей стрелкой. Если нужно её удалить, наведите курсор — стрелка станет красной — и нажмите на корзину.
8. Первое тестирование
Перейдите в Telegram к вашему боту. Отправьте команду
/start.
Через секунду должно прийти сообщение: «Привет, это платформа Watbot!»
Если сообщение пришло — поздравляю! Вы только что выполнили свой первый HTTP-запрос к Telegram Bot API. Если не пришло, проверьте:
- Правильно ли указан токен в глобальной переменной
- Нет ли опечаток в URL
- Установлена ли связь между блоками
- Выбран ли метод POST
Добавление кнопок программным способом
Теперь усложним задачу и добавим интерактивные кнопки прямо через API, без использования визуального редактора платформы.
1. Параметр reply_markup
Вернитесь в документацию Telegram Bot API. В описании метода
sendMessage найдите параметр reply_markup — он отвечает за создание клавиатур и кнопок.
Найдите раздел про InlineKeyboardMarkup — это тип клавиатуры с кнопками под сообщением (inline-кнопки).
Здесь показана структура данных для создания кнопок. Выглядит она сложно, но мы разберемся!
2. Добавление параметра в URL
Вернитесь на платформу и откройте настройки блока HTTP-запрос.
В конце URL (после текста сообщения) добавьте символ & и параметр
reply_markup=.
Здесь будет JSON-структура с описанием кнопок. Но прежде чем её вставлять, давайте подготовим структуру.
3. Структура для двух кнопок
Для создания двух кнопок используется такая структура:Код для создания кнопок:
одна инлайн кнопка -
{
"inline_keyboard": [
[
{
"text": "Одна кнопка",
"callback_data": "Одна кнопка"
}
]
]
}
две инлайн кнопки в ряд:
{
"inline_keyboard": [
[
{
"text": "В ряд 1",
"callback_data": "В ряд 1"
},
{
"text": "В ряд 2",
"callback_data": "В ряд 2"
}
]
]
}
Разберем структуру:
inline_keyboard— массив с кнопками- Каждая кнопка описывается объектом с двумя полями:
text— текст на кнопке (то, что видит пользователь)callback_data— данные, которые передаются при нажатии (для обработки в сценарии) text— текст на кнопке (то, что видит пользователь)callback_data— данные, которые передаются при нажатии (для обработки в сценарии)
Скопируйте эту структуру и вставьте после
reply_markup=.
Критически важно: скопируйте всё, включая все фигурные и квадратные скобки! Если пропустите хотя бы одну скобку, запрос вернет ошибку.
Для удобства можете перейти на новую строку после текста — это не повлияет на работу.
Сохраните блок.
4. Тестирование с кнопками
Перейдите в Telegram, отправьте
/start.
Должно прийти сообщение с текстом и две кнопки под ним: «Кнопка 1» и «Кнопка 2».
Если нажать на кнопки сейчас, ничего не произойдет — мы еще не настроили обработку нажатий. Но сами кнопки уже созданы программным способом!
5. Структура для одной кнопки
Давайте упростим и оставим одну кнопку. Структура для одной кнопки выглядит проще:
{"inline_keyboard":[[{"text":"Посмотреть изображение","callback_data":"show_image"}]]}
Замените предыдущую структуру на эту. Обратите внимание:
- Текст кнопки изменен на «Посмотреть изображение»
callback_dataтеперьshow_image— это идентификатор для обработки нажатия
Сохраните и протестируйте. Теперь под сообщением будет одна кнопка «Посмотреть изображение».
Отправка изображения
Теперь настроим второй HTTP-запрос, который будет отправлять картинку при нажатии на кнопку.
1. Копирование блока HTTP-запрос
Чтобы не настраивать всё заново, просто скопируйте существующий блок HTTP-запрос. На платформе обычно есть функция дублирования блока через контекстное меню.
Откройте настройки скопированного блока. Сейчас мы изменим только несколько параметров.
2. Изменение метода на sendPhoto
Вернитесь в документацию Telegram Bot API. Найдите метод sendPhoto — он предназначен для отправки изображений.
Изучите параметры. Обязательные:
- chat_id — идентификатор чата (уже есть в нашем URL)
- photo — изображение (URL картинки или file_id)
В URL замените
sendMessage на sendPhoto:
Было:
.../sendMessage?...
Стало:
.../sendPhoto?...
3. Замена параметра text на photo
Теперь нужно заменить параметр
text на photo.
Было:
&text=Привет, это платформа Watbot!
Нужно:
&photo=[URL_картинки]
Где взять URL картинки? Есть множество бесплатных сервисов для хостинга изображений. Найдите любой, загрузите туда изображение и скопируйте прямую ссылку на него.
Прямая ссылка обычно заканчивается на
.jpg, .png или .gif и ведет непосредственно к файлу картинки.
Вставьте эту ссылку после
&photo=:
&photo=https://example.com/your-image.jpg
4. Удаление кнопок из второго блока
В этом блоке кнопки не нужны — картинка придет просто как изображение.
Удалите весь параметр
reply_markup со структурой кнопок из URL. Оставьте только chat_id и photo.
Итоговый URL:
https://api.telegram.org/bot{{token}}/sendPhoto?chat_id={{telegram_id}}&photo=https://example.com/your-image.jpg
Сохраните блок.
5. Установка связи с кнопкой
Теперь нужно связать нажатие кнопки «Посмотреть изображение» с отправкой картинки.
В первом блоке HTTP-запрос (где мы создали кнопку) найдите переход «Любая другая фраза». Проведите связь от него ко второму блоку HTTP-запрос (с отправкой картинки).
Логика такая: пользователь нажимает кнопку → срабатывает переход «Любая другая фраза» → выполняется второй HTTP-запрос → приходит изображение.
6. Финальное тестирование
Вернитесь в Telegram, отправьте
/start.
Приходит сообщение с кнопкой «Посмотреть изображение». Нажмите на неё.
Через секунду должна прийти картинка!
Поздравляю! Вы создали интерактивного бота, который:
- Отправляет текстовые сообщения через API
- Создает inline-кнопки программным способом
- Отправляет изображения по запросу пользователя
Практическое применение метода POST
Теперь, когда вы понимаете принцип работы, давайте обсудим, где еще можно применить эти знания.
Создание опросников и форм
Метод POST идеально подходит для создания многошаговых опросников. Вы можете:
- Задавать вопросы пользователю
- Собирать ответы в переменные
- Отправлять собранные данные на внешний сервер через HTTP-запрос
- Сохранять результаты в базе данных или Google Таблицах
Прием онлайн-заказов
Создайте бота для ресторана или магазина:
- Пользователь выбирает товары (через кнопки)
- Указывает адрес доставки и контакты
- Данные отправляются в вашу систему учета через POST-запрос
- Заказ автоматически попадает в обработку
Интеграция с CRM-системами
Отправляйте данные лидов в AmoCRM, Битрикс24 или другие CRM:
- Пользователь оставляет заявку в боте
- Через POST-запрос данные передаются в CRM
- Создается сделка или контакт
- Менеджер получает уведомление
Работа с платежными системами
Интегрируйте приём платежей:
- Через POST-запрос создаете счет в платежной системе
- Получаете ссылку на оплату
- Отправляете пользователю
- Получаете уведомление об оплате через входящий webhook
Публикация в социальные сети
Автоматизируйте публикацию контента:
- Пользователь пишет текст поста в боте
- Через POST-запрос публикуете в VK, Facebook, Twitter
- Бот подтверждает успешную публикацию
Готовый шаблон бота
Чтобы вам было проще начать, мы сохранили бота, который мы собрали в этом руководстве, как шаблон.
Важное напоминание: после скачивания шаблона обязательно замените значение глобальной переменной «token» на ваш собственный API-токен, полученный от BotFather!
Без этого бот не будет работать, так как токен уникален для каждого бота.
Что мы изучили
Давайте подведем итог. Вы научились:
- Создавать глобальные переменные для удобного хранения повторяющихся данных
- Работать с блоком HTTP-запрос на платформе Watbot.ru
- Понимать разницу между методами GET и POST
- Читать документацию API и находить нужные методы и параметры
- Формировать правильные URL для запросов к Telegram Bot API
- Отправлять текстовые сообщения через метод sendMessage
- Создавать inline-кнопки программным способом через reply_markup
- Отправлять изображения через метод sendPhoto
- Связывать блоки для создания интерактивных сценариев
Самое главное — вы поняли принцип работы с API. Теперь вы можете интегрировать в своих ботов практически любые сервисы, которые предоставляют HTTP API!
Telegram Bot API — это лишь один пример. Те же принципы работают с тысячами других сервисов: платежными системами, CRM, социальными сетями, аналитическими платформами и многим другим.
Экспериментируйте, изучайте документацию разных API и создавайте полезных ботов. Удачи в разработке! 🚀
Полезные ссылки
Бесплатная регистрация на платформе Watbot для создания чат-ботов:
Видео-инструкция HTTP-ЗАПРОСЫ: МЕТОД POST: