Выдача нескольких медиа-вложений в Telegram боте
Сегодня мы научимся выдавать несколько медиа-вложений.
Для начала убедитесь, что у вас настроена интеграция с Telegram по этой инструкции. Настроили, идем дальше.
Команда «Загрузка медиа-вложения в бота»
Важно! Будет показан пример для загрузки одного файла. Если нужно несколько, убираете хештег.
Событие:
1) Событие: «Написал сообщение в Telegram» с текстом: #file
Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру. НЕ забывайте про привязку аккаунта TG иначе будут списываться мили.
Обязательно добавляйте условия:
2) Переменная %attach_type%
содержит none
и нажимаем кнопку «Если не» т.е. сообщение содержит вложение.
3) Числовая переменная %chat_id%
больше0
т.е. пользователь пишет в личку боту
4) Чтобы команда реагировала на сотрудника добавьте этo условие: переменная %player.tg_id%
совпадает и вставьте ID сотрудника из следующего действия. (первый запуск делаете без этого условия)




Действия:
1) В действии «Отправить сообщение в Telegram» отправляем текстом с разметкой HTML и текстом:
Идентификатор файла:
<code>%tg_file_id%</code>
Тип вложения:
<code>%attach_type%</code>
TG_ID пользователя:
<code>%player.tg_id%</code>
Здесь все просто:
%tg_file_id%
— идентификатор файла в Telegram.%attach_type%
— тип вложения для формирования JSON-объекта.%player.tg_id%
— идентификатор пользователя Telegram (для условия с сотрудниками). Получаете значение, вставляете его в условие и не забываете его включить.

Команда «Выдача нескольких медиа-вложений в личку»
Важно! Это простейший пример для понимания. Все навороты вы можете делать по собственному желанию.
Событие:
Событие:
1) Событие: «Написал сообщение в Telegram» с текстом: дай файл
Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру.

С команды выше вставляем условия по номеру.
2) Переменная %attach_type%
содержит none
и отжимаем кнопку «Если не» т.е. сообщение не содержит вложение.
3) Числовая переменная %chat_id%
больше0
т.е. пользователь пишет в личку боту


Действия:
1) Для формирования текста к группе медиа-вложений заводим временную переменную %caption%
с текстом:
Вложение

2) Чтобы сформировать правильный JSON-объект
формируем временную переменную %media% с текстом:
[{"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ", "caption": "%caption%"}, {"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ"}, {"type": "video", "media": "BAACAgIAAxkBAAIDLGSv_2QuHATLGG-P33GD7gEE34x1AALUNwAC-fWASZY4YZQ_M2_CLwQ"}]
Здесь просто: указываете тип вложения, потом идентификатор фложения в кавычках, текст caption. Если надо несколько вложений, то указываете через запятую.
Пример (было):
[{"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ", "caption": "%caption%"}, {"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ"}]
Нам нужно загрузить видео. Нет проблем, после LwQ"}
ставим запятую и прописываем тип и т.д. Вот так:
[{"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ", "caption": "%caption%"}, {"type": "photo", "media": "AgACAgIAAxkBAAIDEWSv9PQ5bI2uYT9owuIhm2SkslBRAALCyzEb-fWASUZ1XTwxjRaDAQADAgADcwADLwQ"}, {"type": "video", "media": "BAACAgIAAxkBAAIDLGSv_2QuHATLGG-P33GD7gEE34x1AALUNwAC-fWASZY4YZQ_M2_CLwQ"}]

Так же вы можете воспользоваться вот этим сайтом https://jsonformatter.org/ для вашего удобства.
В действии «Отправить запрос в Telegram» на метод sendMediaGroup
с параметрами:
chat_id
—%chat_id%
. Идентификатор бота.media
—%media%
. Здесь указываем объект с файлами.protect_content
—1
. Данный параметр не дает скачать контент в Telegram. Если он не нужен можете удалять.
На самом деле все просто, если почитать документацию по методу

Тестируем.


Как мы видим все идеально работает. Там есть ограничения со стороны Telegram поэтому сначала все тестируйте на себе.
Творческих взлётов и успешного внедрения.
Вернуться к списку инструкций