Исходящие запросы (API)

В данной статье рассмотрим виды и параметры исходящих запросов

В данной статье разобрана документация Исходящих запросов от PuzzleBot, при необходимости вы можете ознакомиться с документацией по Входящим запросам: Входящие запросы (API).

Есть 3 способа выполнить исходящий запрос:

  1. Дублирование всех запросов Telegram Bot API;
  2. Произвольный запрос в действиях любой команды;
  3. Исходящие запросы при конкретном событии (Подписки на события).

Дублирование всех запросов Telegram Bot API

Для отправки всех действий в боте на удалённый сервер необходимо перейти на странице нужного бота в Настройки — Интеграции — Исходящие запросы и указать адрес вебхука.

220a240c6cc8849a7fb3211858c093e4.png

Отправка запроса в действиях команды

Для отправки произвольного запроса можно в нужных командах или условиях создать Действие "Отправить запрос"

В настройках данного действия необходимо ввести адрес сервера и выбрать тип запроса (GET, POST, DELETE, PUT, PATCH). Можно задать передаваемые параметры в формате Ключ — Значение, а также при необходимости Заголовки

Произвольно сформированное тело запроса (например в формате JSON) возможно только для запросов типа POST, PUT и PATCH.
Для корректной отправки JSON в теле запроса необходимо добавить соответствующий заголовок (Content-Type: application/json)

d5a5d35e7289e09cdb898737fc396fcd.png

Важно! Ответ на запросы, выполненные из Действий "Отправить запрос", получить нельзя! Для работы с запросами, требующими получение ответа, воспользуйтесь Интегрированными переменными.

Подписки на события

Подписки на события — функция, которая позволяет настраивать интеграцию для отправки на сторонний сервис (или сервер) сообщений о событиях происходящих в боте. (Типы событий)

Для настройки подписок на события необходимо перейти на странице бота в Настройки — Подписки на события и нажать кнопку Добавить.

f0dd52cc3d03a9df647601eac64f7b1b.png

При выполнении выбранного условия на заданный url (адрес) придет запрос, закодированный в JSON формате.

Любое сообщение (any_message):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "message" — Текст сообщения,
  • "type_subscribe_event":"any_message",
  • "name" — Название подписки на событие.
     

Вызов команды (call_command):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "command"
    • "name" — Название команды,
    • "group_name" — Название группы команды,
    • "call_type" — Тип вызова команды ("reply" или "inline").
  • "type_subscribe_event":"call_command",
  • "name" — Название подписки на событие.
     

Вызов команды из группы (call_command_from_group):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "command"
    • "name" — Название команды,
    • "group_name" — Название группы команды,
    • "call_type" — Тип вызова команды ("reply" или "inline").
  • "type_subscribe_event":"call_command_from_group",
  • "name" — Название подписки на событие.
     

Ответ на форму ввода (form_answers):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "type_subscribe_event":"form_answers",
  • "name"— Название подписки на событие,
  • "forms" — Массив ответов на формы,

    • "name" — Имя формы 1,
    • "input_type" — Тип формы ("options" — Выбор варианта, "exam" — Тестирование, "message" — Отправка сообщения,  "request_contact" — Запрос контакта, "request_location" — Запрос локации)
    • "block_type" — Тип блока ("normal" — Обычный, "telegram" — Telegram. Только для типов: Выбор варианта и Тестирование),
    • "type" — Маска формы 1 (только для типа Отправка сообщения),
    • "variable" — Переменная формы 1,
    • "answer" — Ответ формы 1,
    • "caption" — Описание к файлу 1 (если отправлен файл).
    • "file_ids" — ID файла.
       

Ответ на форму ввода заданных команд (custom_form_answers):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "type_subscribe_event":"custom_form_answers",
  • "name"— Название подписки на событие,
  • "forms" — Массив ответов на формы,

    • "name" — Имя формы 1,
    • "input_type" — Тип формы ("options" — Выбор варианта, "exam" — Тестирование, "message" — Отправка сообщения,  "request_contact" — Запрос контакта, "request_location" — Запрос локации)
    • "block_type" — Тип блока ("normal" — Обычный, "telegram" — Telegram. Только для типов: Выбор варианта и Тестирование),
    • "type" — Маска формы 1 (только для типа Отправка сообщения),
    • "variable" — Переменная формы 1,
    • "answer" — Ответ формы 1,
    • "caption" — Описание к файлу 1 (если отправлен файл).
    • "file_ids" — ID файла.

Важно! Для просмотра ответа по другой Форме ввода используйте её числовой индекс в квадратных скобках у поля “forms”.

Пользователь вошел в чат (new_member):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "type_subscribe_event":"new_member",
  • "name"— Название подписки на событие.
     

Пользователь покинул чат (left_member):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "type_subscribe_event":"left_member",
  • "name" — Название подписки на событие.
     

Активация ссылки (activate_link):

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "link"
    • “invited_by” — Информация о том, кто пригласил (только для реферальных ссылок),
      • "id" — ID пользователя,
      • "first_name" — Имя пользователя,
      • "last_name" — Фамилия пользователя,
      • "username" — Username пользователя.
    • "key" — Ключ ссылки,
    • "type" — Тип ссылки ("multiple" или "promo" или "referal").
  • "type_subscribe_event":"activate_link",
  • "name" — Название подписки на событие.
     

Уведомления (notifications):

start_dialog, end_dialog, any_message_in_dialog, unconfirmed_leave, new_request_resource, post_in_queue, post_sent, new_payment, failed_payment

  • "date" — Дата в timestamp,
  • "bot"
    • "id" — ID Бота,
    • “username” — Username Бота,
    • "first_name" — Название Бота.
       

Только для unconfirmed_leave и new_request_resource

  • "chat"
    • "id" — ID чата,
    • "type" — Тип чата ("private" или "channel" или "group" или "supergroup"),
    • "first_name" — Название бота (может не быть, если это не бот),
    • "title" — Название ресурса (может не быть, если это бот),
    • "username" — Username ресурса (бота или канала или супергруппы),
    • "members_count" — Количество участников в чате.
       

Только для start_dialog, end_dialog, any_message_in_dialog, new_payment и failed_payment

  • "user"
    • "id" — ID пользователя,
    • "first_name" — Имя пользователя,
    • "last_name" — Фамилия пользователя,
    • "username" — Username пользователя,
    • "is_bot" — Является ботом или нет (true или false),
    • "category_name" — Название категории пользователя.
  • "type_subscribe_event" — Тип подписки на событие,
  • "name" — Название подписки на событие,
  • "text" — Текст уведомления,
  • "type_notification" — Тип уведомления.
     

Только для new_payment и failed_payment

  • “payment”
    • "sum" — Сумма платежа,
    • "name" — Название платежа,
    • "status" — Статус* ("ok" или "failed").