Работа с мультимедийными материалами по ID
Важно! Следует иметь ввиду, что перед употреблением синтаксиса должен быть пробел т.е., например, с [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, а потом используете синтаксис для прикрепления этих файлов.
Второй случай имеет смысл использовать, например, если заранее количество объектов неизвестно. Допустим вы пишите аудио библиотеку и знаете, что аудио будут загружать пользователи. В таком случае систему имеет смысл настроить на получение информации об объектах во внешнем скрипте.
Рассмотрим первый способ:
Для настройки этого способа вам потребуется указать в настройках вашего бота chat_id (ID в телеграме). Для того чтобы узнать свой id в телеграме достаточно написать своему или нашему (@bot_vprogramme_rf_bot) боту:
getChatId
Далее в самом низу настроек бота следует включить опцию Возвращать данные файлов в бота:
Далее отправляете своему боту необходимый объект (например, прикрепляете стикер). Бот вернет вам информацию по объекту:
Использовать ID можно через синтаксис (данный пример для синтаксиса стикеров):
А вот и наш стикер! [sticker_telegram|CAADAgAD9AADUhVsAAEX9d-aJuqFhAI]
Пример текста в команде бота:
Пример ответа бота:
Рассмотрим второй способ:
Для этого в самом низу настроек бота следует выключить (еслли она включена) опцию Возвращать данные файлов в бота:
Пример структуры команд:
Примеры настроек команд:
Пример диалога с ботом:
Пример скрипта можно скачать по ссылке:
http://ebot.one/all/s_radoid/dialogs/demo/get_file_info/get_data.zip