Максим
Полезные статьи

HTTP-ЗАПРОСЫ: МЕТОД POST ДЛЯ ОТПРАВКИ СООБЩЕНИЙ И ИЗОБРАЖЕНИЙ

HTTP-запросы — это мощный инструмент, который превращает простого чат-бота в полноценную систему, способную взаимодействовать со сторонними сервисами. Если на платформе нет готового блока для нужной функции, HTTP-запрос позволяет реализовать практически любую задачу.
В этом руководстве мы детально разберем блок HTTP-запроса и метод POST на практическом примере. Вы научитесь отправлять текстовые сообщения и изображения в Telegram через Telegram Bot API, создавать кнопки программным способом и работать с глобальными переменными для удобства.
Это первая часть серии материалов об HTTP-запросах. Здесь мы сосредоточимся на методе POST — отправке данных на сервер. Это фундаментальный навык, который откроет вам доступ к тысячам API и позволит создавать ботов любой сложности.

Подготовка: подключение Telegram

Прежде чем работать с HTTP-запросами к Telegram Bot API, нужно правильно подключить мессенджер к платформе.

1. Подключение бота

Если вы еще не подключили Telegram к своему боту на платформе Watbot.ru, сделайте это в первую очередь. На канале есть отдельное подробное видео с пошаговой инструкцией по работе с BotFather — там объясняется, как создать бота, получить API-токен и подключить мессенджер:
Чат-бот за 10 минут: лёгкая настройка с BotFather 🔥 Подробная инструкция как с помощью бота в Telegram создать своего собственного чат-бота, получить API токен и оформить его, а именно изменить имя бота, его о... www.youtube.com
После подключения у вас будет 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. Это официальная документация с описанием всех доступных методов.
Methods Accepting the Terms of Service Name Description help.getTermsOfServiceUpdate Look for updates of telegram's terms of service… core.telegram.org
Страницу можно перевести на русский язык через браузер, но лучше оставить английскую версию — нам придется копировать команды и параметры, которые должны быть на английском.
Прокрутите страницу вниз и найдите раздел «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
  • Бот подтверждает успешную публикацию

Готовый шаблон бота

Чтобы вам было проще начать, мы сохранили бота, который мы собрали в этом руководстве, как шаблон.
Watbot - визуальный конструктор чат-ботов watbot.ru
Важное напоминание: после скачивания шаблона обязательно замените значение глобальной переменной «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 для создания чат-ботов:
Watbot — визуальный конструктор чат-ботов Визуальный конструктор чат-ботов для Вашего бизнеса. Подойдёт для любой ниши. Соберите готовое решение чат-бота за 10 минут! 300 видеоуроков внутри платформы. Больше 100 шаблонов чат-ботов. Легко научиться собирать. Усиливает продажи и автоматизацию. watbot.ru
Видео-инструкция HTTP-ЗАПРОСЫ: МЕТОД POST:
РАБОТА БЛОКА HTTP В ЧАТ-БОТЕ Пошаговый урок по сборке бота с использованием HTTP-запроса. Показываем, как с помощью этого блока отправлять сообщения и картинки в чат Шаблон на этот чат-б... www.youtube.com