Нативный запрос

Работает только в Telegram.

Компонент Нативный запрос работает также как Запрос API, но настраиваются эти компоненты по-разному.

В отличие от Запроса, в Нативном запросе, пользователю нужно выбрать только Метод и заполнить Тело запроса — для методов, которые отправляют POST, для GET — в поле для тела запроса нужно обязательно вписать пустой объект {}.

Остальные настройки добавятся по умолчанию, в компоненте их видно не будет.

Когда в компоненте выбран Метод запроса, в настройках появляется активная ссылка ведущая на документацию API Telegram выбранного метода.

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

Для примера, отправим одним сообщением три изображения с помощью Нативного запроса. Метод: sendMediaGroup.

Этим методом можно отправить несколько файлов одного вида: изображений, документов, видео или аудио.

В боте отправленные изображения будут выглядеть так:

Обязательные параметры для Тела запроса:

  • chat_id — уникальный идентификатор пользователя в боте. Его мы получаем как основную переменную {{this_user.platform_id}}. Можно оставить без изменений, тогда изображения отправятся пользователю, который попал на компонент Нативный запрос в боте.
  • media — ссылки на изображения, например, с гугл-диска. Попробуйте поменять ссылки из примера на свои — в бот придут изображения по ссылкам, которые вы укажите.

Напишем Тело запроса с этими параметрами:

{
"chat_id": "{{this_user.platform_id}}",
"media":[{
"type": "photo",
"media": "https://drive.google.com/file/d/1Y09-df77xdYlpsze2rpqWGCbkms4HNpl/view?usp=sharing"},
{"type": "photo",
"media": "https://drive.google.com/file/d/1GXpNm0bqtKB6MuRfMzwxO5Dj3iKQzJgY/view?usp=sharing"},
{"type": "photo",
"media": "https://drive.google.com/file/d/1bsjPW2M75yCgeokn3j6_PixQY_hsMUUc/view?usp=sharing"}]
}

И добавим его в настройки компонента:

Не забудьте сохраниться.

Теперь при активации компонента бот пришлет сразу три изображения.

Из-за ограничений Telegram, изображения могут обрезаться по горизонтальному формату.

Пересылка сообщений из группы/канала

Перешлем сообщение в исходном виде из канала/группы с помощью метода forwardMessage в Нативном запросе.

Таким методом можно воспользоваться, если нужно прислать изображение и текст одним блоком.

В пересылаемом сообщении может быть только одно изображение. Если изображений будет больше — в бот придет только первое.

1. Добавим в группу/канал бота, откуда будет отправляться запрос, администратором со всеми правами.

2. Добавим тело запроса:

{
"chat_id": {{this_user.platform_id}},
"from_chat_id": "@имя_канала",
"message_id": "23"
}

Где:

  • chat_id — то, куда пересылаем сообщение.
  • {{this_user.platform_id}} — ID пользователя, у которого сработает запрос. Можно оставить без изменений, тогда запрос сработает у пользователя, который попал на компонент Нативный запрос в боте.
  • from_chat_id — группа/канал откуда пересылаем сообщение.
  • Вместо @имя канала — должно быть имя или ID вашего канала/группы.
  • message_id — ID сообщения, которое пересылаем. В нашем примере это — 23.

Узнать ID сообщения можно, нажав правой клавишей мыши по пересылаемому сообщению в канале/группе и выбрав Копировать ссылку на сообщение.

Получится ссылка вида https://t.me/название канала/23.

23 — это и есть ID сообщения. Добавим это ID в Тело запроса, остальная часть ссылки не нужна.

3. Оформим Нативный запрос в конструкторе.

4. Сделаем сохранение и протестируем бота. Сообщение из группы/канала в бот придет в таком виде:

Если нужно, чтобы сообщение пришло без названия канала, можно воспользоваться методом copyMessage.

Тело запроса для этого метода будет таким же, как в прошлом примере, меняется только Метод запроса.

Теперь в бот придет придет сообщение без отсылки к каналу или группе, откуда сообщение пересылалось.

Как отправить стикер от имени бота

Пришлем пользователю стикер с помощью метода SendSticker в Нативном запросе.

Таким методом можно воспользоваться, если нужно прислать пользователю стикер сообщением от бота.

1. В компоненте Нативный запрос выберем из выпадающего списка метод запроса SendSticker.

2. Добавим Тело запроса:

{
"chat_id": "{{this_user.platform_id}}",
"sticker": "54321"
}

Где 54321 — ID отправляемого стикера. Узнать ID любого стикера поможет бот Sticker ID

Как сделать кнопку для перехода в веб-приложение в Telegram

Такую кнопку можно сделать с помощью метода sendMessage в Нативном запросе.

1. Добавим в Нативный запрос Тело запроса:

{
   "platformId":"{{this_user.platform_id}}",
   "chat_id":"{{this_user.platform_id}}",
   "text":"Нажмите на кнопку что бы перейти в веб-бота",
   "reply_markup":{
      "inline_keyboard":[
         [
            {
               "text":"Перейти",
               "web_app":{
                  "url": "https://docs.botmother.ru/article/41067"
               }
            }
         ]
      ]
   }
}

Где:

  • chat_id — то, куда пересылаем сообщение.
  • {{this_user.platform_id}} — ID пользователя, у которого сработает запрос. Можно оставить без изменений, тогда запрос сработает у пользователя, который попал на компонент Нативный запрос в боте.
  • text — текст перед кнопками.

reply_markup — настройки кнопки, где:

  • text — текст на кнопке.
  • url — адрес для перехода по кнопке.

3. Сделаем сохранение и протестируем бота.

Сообщение из группы/канала в бот придет в таком виде:

В начало ↑

Была ли статья полезна?

Да Нет