Получение файлов от пользователя

Материал из SaleBot Help
Перейти к навигации Перейти к поиску

Когда пользователь отправляет файл или картинку, он генерирует callback attachment_message.

Для того, чтобы узнать какой файл нам отправил пользователь и обработать его соответствующим образом, нужно использовать этот callback в поле условие.

Для этих целей подойдет любой блок с условием, в том числе, блоки со стелками

Реализация

Мы будем использовать блок Первостепенная проверка условия:

Получение файлов от пользователя

После отправки файла, salebot сохраняет этот файл на сервер и отправляет нам ссылку в переменных:

  • #{attachments} – url вложений пользователя в формате JSON
  • #{attachment_url} – url ссылка на вложение


В этом же блоке, нам необходимо "использовать" эти переменные, иначе, на следующем этапе воронки, они пропадут. На примере выше, в блоке "Сохраним?" сохранять будет уже нечего – переменные вложений будут пустые. Чтобы не потерять переменную и использовать её далее, нужно присвоить значение переменной attachment_url другой переменной в калькуляторе: var = #{attachment_url}

Результат выполнения "зеленого блока":

Отправка изображения в бот

Особенности получения файлов в Телеграм

Если в настройках подключения Телеграм бота (вкладка Каналы) установить переключатель "Группировать файлы...":

Ползунок Группировать файлы в настройках Телеграм бота (вкладка Каналы)


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

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

Создадим два блока с проверкой условия. В первом блоке переменной для сравнения будет attachment_url != '', во втором – attachment_url == '', условие для блоков будет одинаковым: вот файл;дз.

Получение файлов с текстовым описанием (Caption)

Теперь, посмотрим, как работает наш бот:

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

Как видно из примера, оба условия отработали по задуманному сценарию, третье условие (когда пользователь отправляет файл) было рассмотрено выше.