Выдача нескольких медиа-вложений в Telegram боте

Сегодня мы научимся выдавать несколько медиа-вложений.
Для начала убедитесь, что у вас настроена интеграция с 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» с текстом: дай файл

Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру.
Выдача нескольких медиа-вложений в Telegram боте, image #6

С команды выше вставляем условия по номеру.

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"}]
Пример JSON-объекта.
Пример JSON-объекта.

Так же вы можете воспользоваться вот этим сайтом https://jsonformatter.org/ для вашего удобства.

В действии «Отправить запрос в Telegram» на метод sendMediaGroup

с параметрами:

  • chat_id%chat_id%. Идентификатор бота.
  • media%media%. Здесь указываем объект с файлами.
  • protect_content1. Данный параметр не дает скачать контент в Telegram. Если он не нужен можете удалять.

На самом деле все просто, если почитать документацию по методу

Пример запроса.
Пример запроса.

Тестируем.

Загрузка файла успешна
Загрузка файла успешна
Идеально
Идеально

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

Творческих взлётов и успешного внедрения.

Вернуться к списку инструкций
746 views·4 shares
746 views