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

Вывести пользователю сообщение о том, что бот не работает с файлами

Фрагмент сценария

Порядок действий

1) После блока вопроса необходимо установить блок информации, и соединить их стрелкой с типом Файл.

2) С помощью пустого блока нужно протянуть стрелку обратно в блок вопроса.

Таким образом, если боту будет отправлена фотография или любой другой файл, бот ответит что не умеет работать с файлами.

Пример работы фрагмента

Получить ссылку на отправленный пользователем файл

Если пользователь отправит боту несколько файлов в одном сообщении, при использовании данного метода будет обработан только один файл.

Ссылка, полученная таким образом, будет действительна в течении одного часа - файл нужно будет скачать до истечения срока действия ссылки.

Фрагмент сценария

Порядок действий

1) После блока вопроса необходимо установить блок информации с текстом по типу "Обрабатываю файл", и соединить их стрелкой с типом Файл. В самой стрелке необходимо поставить галочку Сохранить ответ, и ввести название переменной, куда будет сохранена информация о файле, в данном случае назовем ее file.

2) Далее необходимо установить блок арифметики с типом Произвольный тип, и ввести в поле BPL-выражение следующее выражение:

$file = str.split($file, "\"").get(3)

После чего нажать на кнопку Преобразовать BPL в AST.
Данная операция нужна чтобы получить идентификатор файла из строки информации о файле.

3) Затем необходимо установить еще один блок информации с текстом по типу "Файл обработан".

В данном блоке нужно выставить задержку перед отправкой 5 секунд, так как для получения информации о файле может потребоваться некоторое время.


4) Далее нужно установить блок запроса к серверу со следующими параметрами:

Поле

Значение

Тип авторизацииОтсутствует
Тип запросаPOST
URLhttps://iam.twin24.ai/api/v1/auth/login

Тело запроса:

Название поляЗначение поля
emailваш логин он личного кабинета Twin
passwordваш пароль от личного кабинета Twin

Этот блок нужен для получения токена авторизации, который необходим для следующего блока.

5) Далее необходимо установить еще один блок запроса к серверу, и в стрелке, идущей во второй блок запроса, необходимо указать следующие параметры:

ПолеЗначение
Типрезультат
Успешность запросаУспешно
Код ответа200

И присвоить переменную:

Название поляЗначение поля
tokenresult.token

 
6) Во втором блоке запроса необходимо установить следующие параметры:

Поле

Значение

Тип авторизацииЗаголовок
Тип авторизацииBearer
Значение ключа{token}
Тип запросаGET
URLhttps://bot.twin24.ai/api/v1/files/{file}/data


7) Далее может идти любой блок, в данном примере это блок информации.
В стрелке, выходящей из блока вопроса, нужно указать следующие параметры:

ПолеЗначение
Типрезультат
Успешность запросаУспешно
Код ответа200

И присвоить переменные:

Название поляЗначение поля
fileNameresult.name
fileLinkresult.downloadLink

 В переменную {fileName} будет сохранено имя файла, а в переменную {fileLink} будет сохранена ссылка на скачивание этого файла. Далее вы можете сохранить эти переменные в отчет, вывести их в чат с пользователем, или отправить во внешнюю систему, как и любые другие переменные.

Пример работы фрагмента


Таким образом вы можете получить ссылку на фотографию или любой другой файл, отправленный пользователем.