Переменная “Вложение”
Здесь вы узнаете, как использовать переменные “Вложение”
Last updated
Здесь вы узнаете, как использовать переменные “Вложение”
Last updated
Переменные “Вложение” позволяют сохранять ссылки на скачивание для файлов, отправляемых пользователями при общении с ботом
Чтобы создать новую переменную, нужно
Открыть любой сценарий, нажать “Переменные” и во всплывшем окне - “Добавить переменную”.
В поле “Тип переменной” выбрать “Вложение”.
В поле “Уровень доступа” выбираем нужный параметр.
Глобальная переменная нужна, чтобы дать возможность всем пользователям бота или определённому его сегменту скачивать один и тот же файл. Пользовательская - чтобы сохранять индивидуальные ссылки на файлы от каждого клиента.
Указать название переменной
Нажимаем “Создать”.
Чтобы ссылки для скачивания сохранялись в нашу переменную и пользователи понимали, что им нужно делать, нам потребуется добавить в сценарий следующую последовательность действий:
сообщение от бота с предложением отправить файлы
обработка файла (сохранение ссылки на скачивание)
добавление ссылки в нужную базу данных (если требуется)
Для этого после блока “Отправить сообщение” мы выбираем блок “Обработать сообщение” (в нём должна стоять галочка “Ждать сообщение от пользователя”).
Если количество присылаемых файлов может разниться, то лучше в поле “Количество вложений” оставить 1.
В случае, если нужно сохранить в переменную больше одного вложения (значение поля "Количество вложение" > 1), то:
Нужно использовать переменную типа “Массив”
Бот будет ждать ровно столько вложений, сколько мы здесь напишем (это может быть удобно, когда нам обязательно нужно получить, например, 3 фотографии объекта)
В поле “Выберите типы вложений” ставим галочки возле типов, которые мы хотим сохранять (если не указать ничего, то бот будет сохранять всё). В поле “Переменная” выбираем нужную. Также мы можем выбрать максимальный размер файла, который готовы принять (в килобайтах или мегабайтах).
Стоит указать действие бота для случаев, когда пользователи будут присылать не подходящие под критерий сообщения. Например, чтобы бот снова и снова просил прислать фото. Для этого нужно от значка ⚠️ провести стрелку к нужному блоку.
Теперь, если пользователи будут присылать боту изображение, то переменная %Файл% сможет сразу отправлять ссылку, по которой его можно будет скачать:
Если человек пришлёт несколько картинок, то бот сохранит первую
На самом деле в переменной %Файл% в момент обработки вложения сохраняются и другие данные, а именно:
тип вложения (изображение)
имя файла (создаётся автоматически)
ссылка на изображение в хорошем качестве (которую мы уже получили в ответ)
ссылка на превью
И выглядит это так:
В некоторых случаях поэтому нам нужно будет дополнительно извлекать URL файла для скачивания (например, если мы собираем обратную связь и не знаем заранее, сколько фотографий пришлёт клиент).
Тогда ссылку на изображение в хорошем качестве можно сохранить в переменную типа “Строка”. Назовём её %Ссылка на фото% и создадим так же, как создали переменную %Файл%, только вместо “Вложение” в типе переменной укажем “Строка”.
После создания нужной переменной ссылку в неё можно сохранить или в блоке “Установить переменную”, или в блоке “Выполнить SmartQuery” (достаточно выбрать один по вкусу).
В блоке “Установить переменную” нужно в части слева от знака равенства выбрать переменную %Ссылка на фото%, а справа - ввести формулу {{ %Файл%['url'] }}
В блоке “Выполнить SmartQuery” будет всё то же самое, но без {{ }}
И теперь, если мы после сохранения переменной %Ссылка на фото% добавим шаг “Отправить сообщение” с этой переменной, то в ответ на сообщение с картинкой, как и в прошлом случае, получим ссылку на неё. Однако других данных в ней уже не будет, и мы вольны делать с ней всё, что захотим.
Осталось придумать, в каких случаях бот будет сохранять ссылки на файлы и куда их дальше отправлять. Например, заносить в Google-таблицу или пересылать администратору.
Или встроить переменную в кнопку-ссылку, чтобы пользователи всегда могли скачивать актуальные данные.
А может, сперва сохранить несколько ссылок в один массив и потом уже пересылать его, куда будет нужно.