Получение файлов от пользователя
Когда пользователь отправляет файл или картинку, он генерирует callback attachment_message
.
Для того, чтобы узнать какой файл нам отправил пользователь и обработать его соответствующим образом, нужно использовать этот callback в поле условие.
Для этих целей подойдет любой блок с условием, в том числе, блоки со стелками
Реализация
Мы будем использовать блок Первостепенная проверка условия:
После отправки файла, salebot сохраняет этот файл на сервер и отправляет нам ссылку в переменных:
#{attachments}
– url вложений пользователя в формате JSON#{attachment_url}
– url ссылка на вложение
В этом же блоке, нам необходимо "использовать" эти переменные, иначе, на следующем этапе воронки, они пропадут. На примере выше, в блоке "Сохраним?" сохранять будет уже нечего – переменные вложений будут пустые. Чтобы не потерять переменную и использовать её далее, нужно присвоить значение переменной attachment_url другой переменной в калькуляторе: var = #{attachment_url}
Результат выполнения "зеленого блока":
Внимание! Если пользователь отправляет файл с текстовым описанием к нему (Caption) – условие не сработает. |
Особенности получения файлов в Телеграм
Если в настройках подключения Телеграм бота (вкладка Каналы) установить переключатель "Группировать файлы...":
Тогда, при отправке группы файлов пользователем, условие будет выполнено однократно, в переменных вложений будет сохранена ссылка на последний файл в группе. При выключенном флаге, условие выполнится несколько раз.
Получение файлов с текстовым описанием
Создадим два блока с проверкой условия. В первом блоке переменной для сравнения будет attachment_url != ''
, во втором – attachment_url == ''
, условие для блоков будет одинаковым: вот файл;дз
.
В примере, группировка файлов – отключена |
Теперь, посмотрим, как работает наш бот:
Как видно из примера, оба условия отработали по задуманному сценарию, третье условие (когда пользователь отправляет файл) было рассмотрено выше.