Работа с мультимедийными материалами по ID

Материал из боты telegram - ebot.one - редактор ботов
Перейти к: навигация, поиск

Важно! Следует иметь ввиду, что перед употреблением синтаксиса должен быть пробел т.е., например, с [b] или с [img_telegram сообщение начинаться не должно.

Существует 2 способа отправить файл пользователю от бота:

  • Ниже описан способ отправки изображений и файлов по их ID в телеграме.
  • А тут "ссылка" можно прочитать как отправить изображение или файл по URL. Но у такой отправки есть существенные ограничения и отправлять так удобно только изображения, mp3 и еще несколько типов файлов.. но отправить, к примеру, документ формата doc не получится.

Синтаксис отправки по ID файла не отличается от синтаксиса отправки по URL:

Мой текст [img_telegram|CAADAgADKQUAAujW4hJwoA4SathvtwI]

, где CAADAgADKQUAAujW4hJwoA4SathvtwI - ID изображения, видео, стикера или иного объекта.


Типы объектов:

img_telegram - изображение

sticker_telegram - стикер

audio_telegram - аудио формата mp3

video_telegram - видео mp4

document_telegram - документы типов doc, zip, pdf и т.д.


Важно! ID документа будет работать только в пределах данного бота. Возможно это не касается изображений или видео, но документы типа zip точно не получится передать через бота Б если ID был получен в боте А.

В редакторе существует два способа получить ID объекта.

1) Получить данные объекта (в том числе ID) в ответ от вашего бота. В результате вы будете прикреплять нужный объект боту и он в ответ вам будет выдавать ID отправленного ему объекта.

2) Получить в POST данных во внешнем скрипте. В этом способе вы указываете в поле настройки команды Url Resp скрипт и этот скрипт получит помимо прочих данных данные прикрепленного объекта.

Оба случая исключают друг друга - либо скрипты получают информацию об объектах и отвечают пользователям (в том числе и вам), либо вы получаете информацию по объектам (при этом другие пользователи, прикрепляя объекты ничего не будут получать в ответ от бота).

В каких случаях использовать какой вариант?

Случай первый (когда вы получаете информацию об объекте от бота) удобен если в вашем боте всего пара документов, которые нужно прикрепить в ответ на запрос пользователя. В этом случае вы настраиваете бота на получение информации об объектах, получаете нужные ID, а потом используете синтаксис для прикрепления этих файлов.

Второй случай имеет смысл использовать, например, если заранее количество объектов неизвестно. Допустим вы пишите аудио библиотеку и знаете, что аудио будут загружать пользователи. В таком случае систему имеет смысл настроить на получение информации об объектах во внешнем скрипте.


Рассмотрим первый способ:

Получение данных (в том числе ID) объекта (картинки, видео, стикера и т.д.) в ответ от вашего бота.


Для настройки этого способа вам потребуется указать в настройках вашего бота chat_id (ID в телеграме). Для того чтобы узнать свой id в телеграме достаточно написать своему или нашему (@bot_vprogramme_rf_bot) боту: getChatId

Далее в самом низу настроек бота следует включить опцию Возвращать данные файлов в бота:

Get info file 1.png

Далее отправляете своему боту необходимый объект (например, прикрепляете стикер). Бот вернет вам информацию по объекту:

Get info file 2.png

Использовать ID можно через синтаксис (данный пример для синтаксиса стикеров):

А вот и наш стикер! [sticker_telegram|CAADAgAD9AADUhVsAAEX9d-aJuqFhAI]

Пример текста в команде бота:

Get info file 3.png

Пример ответа бота:

Get info file 4.png


Рассмотрим второй способ:

Получение данных (в том числе ID) объекта (картинки, видео, стикера и т.д.) в POST данных во внешнем скрипте. В этом способе вы указываете в поле настройки команды Url Resp скрипт и этот скрипт получит помимо прочих данных данные прикрепленного объекта.

Для этого в самом низу настроек бота следует выключить (еслли она включена) опцию Возвращать данные файлов в бота:

Get info file 6.png

Пример структуры команд:

Get info file 7.png

Примеры настроек команд:

Get info file 5.png

Get info file 8.png

Пример диалога с ботом:

Get info file 9.png

Get info file 10.png

Пример скрипта можно скачать по ссылке:

http://ebot.one/all/s_radoid/dialogs/demo/get_file_info/get_data.zip