Как принять файлы от пользователя для дальнейшего использования
Тип ответа "Ждать произвольного ответа пользователя" позволяет вам принять файлы от пользователя и записать их в переменную с целью дальнейшего использования в сценариях чат-бота.
Для того, чтобы принять файлы необходимо в поле "Ждать ответ в формате" поставить значение "Файлы". Сразу после этого вам станут доступны дополнительные настройки по количеству принимаемых файлов и некоторые другие.
Назначение параметров
- Количество файлов. Позволяет указать, какое количество файлов вы ожидаете от пользователя.
- Любое количество. При данном значении параметра чат-бот будет ждать произвольное количество файлов до тех пор, пока пользователь на нажмёт кнопку завершения.
- Точное количество файлов. При данном значении параметра чат-бот будет ждать ровно столько файлов, сколько вы укажете. При этом бот сообщит ожидаемое количество файлов пользователю и будет информировать о том, сколько файлов он принял до тех пор, пока пользователь на нажмёт кнопку завершения или пока не будет достигнуто необходимое количество.
- Не менее. При этом чат-бот будет ожидать столько файлов, сколько вы укажете или более. Для завершения отправки файлов пользователю необходимо будет нажать соответствующую кнопку.
- От и до. Чат-бот будет ждать количество файлов в установленном диапазоне. Ожидание файлов автоматически завершится сразу при достижении значения верхнего количества файлов.
- Текст кнопки завершения. Текст, который будет отображаться в кнопке завершения отправки файлов пользователем.
- Записать файлы в переменную. Переменная типа "Файлы" в которую будут записаны отправленные пользователем файлы.
- Действия при завершении отправки, если файлов меньше необходимого. Данный параметр определяет поведение бота, если пользователь пытается завершить отправку файлов при недостаточном количестве файлов.
- Отправить сообщение и дождаться файлов
- Продолжить отработку без ожидания файлов
- Игнорировать и дождаться файлов
- Запустить отработку неизвестных команд
- Запустить другой сценарий/узел
Как это работает
При достижении узла с включенным ожиданием файлов чат-бот будет ждать от пользователя столько файлов, сколько вы зададите в соответствующем параметре "Количество файлов". Если вы зададите границы ожидаемого количества файлов (Не менее, точное число или "От и до"), то чат-бот проинформирует пользователя о том, сколько файлов он от него ждет, а при каждом отправляемом файле обновит сообщение с информацией о том, сколько файлов он ждет и сколько уже принял.
Если в процессе получения файлов ботом будет получено необходимое количество файлов, бот автоматически завершит ожидание и пойдет дальше по сценарию.
Если необходимое количество файлов заранее неизвестно (например, ожидаем сколько угодно файлов), бот будет ожидать нажатия кнопки завершения и будет ее показывать все время, пока ожидает файлы и спрячет, как только ожидание файлов завершится.
Если пользователь попытается завершить отправку нажатием кнопки до того, как отправит необходимое количетсво файлов, то бот будет себя вести так, как вы укажете в соответствующем параметре. Доступны разные варианты и в зависимости от конкретного указанного вами значения бот может дождаться всех файлов или же пойти дальше.
Приемка любого количества файлов
При варианте "Любое количество" чат-бот выводит кнопку с текстом из параметра "Текст кнопки завершения" и начинает ожидать файлы от пользователя. При этом чат-бот не пишет, что именно он ждёт от пользователя. Чтобы дать понять понять пользователю, что от него ждут вам следует предварительно отправить сообщение пользователю о том, что от него ожидаются файлы.
После отправки пользователем файла чат-бот молча принимает его и записывает в переменную и указывает в отладке (если она включена), в какую переменную был записан файл, сколько файлов было записано (файлы могут приходить как одним сообщением, так и несколькими), сколько всего файлов в переменной на данный момент и сколько всего файлов было прислано.
Чат-бот не пишет никакого текста в ответ пользователю на его файлы и для завершения отправки пользователю необходимо нажать кнопку завершения.
С того момента, как чат-бот начал ожидание файлов от пользователя, он будет игнорировать все сообщения, которые не содержат файлы.
Например, если пользователь просто напишет что-то, чат-бот промолчит. Но в отладке он напишет, что текст увидел и проигнорировал его, и что он продолжает ждать файлы.
Приемка заданного количества файлов
При варианте "Точное количество файлов", "Не менее", "От и до" чат-бот вместе с кнопкой завершения будет отправлять пользователю текст с информацией о том, сколько он получил файлов и сколько он ожидает всего файлов от пользователя.
Также в отладочной информации чат-бот напишет, сколько всего ожидается файлов и сколько осталось получить.
Данное сообщение будет удаляться при каждом новом присланном файле от клиента (в некоторых мессенджерах удаление сообщений не доступно, поэтому они будут сохраняться. Например, в Viber).
При этом чат-бот будет присылать новое сообщение с обновлённой информацией в чат. Также c кнопкой завершения.
Если установлен минимум файлов и клиент попытается завершить отправку раньше положенного минимума, то вы можете указать чат-боту, как ему вести себя в таких случаях. Чат-бот в зависимости от настроек может либо завершить ожидание, либо продолжить, при этом отправив клиенту установленный вами текст. К данному тексту чат-бот добавит также информацию, сколько ему нужно файлов, и кнопку завершения.
Если установлен максимум файлов, либо точное количество, то чат-бот автоматически завершит ожидание файлов, сообщив клиенту, что необходимое количество файлов получено.
Обратите внимание, что если чат-бот получил файл - он сразу записывает его в переменную и продолжает ждать остальные файлы.
Если не выбрано ожидание файлов при неправильном вводе, то чат-бот продолжит выполнять узел.
Если перед этим чат-бот уже записал принятые файлы в переменную, то они так в переменной и останутся, он её не обнуляет, даже если там не достаёт нужного количества.