← Вернуться к списку тем

Upload нескольких изображений товара.

Пытаюсь сделать загрузку нескольких изображений в базу. Но!
В
elseif (array_key_exists("photo", $data['message']))
скрипт ловит только первый file_id и дальше выполняет
$this->addProductPhoto().
Остальные file_id прилетают уже после выполнения кода и отображения кнопок. Возможно как-то дождатся всех изображений и потом в цикле их передать в addProductPhoto()?
Или у кого то есть другая идея? Спасибо.

Ответы


  • iMakeBots [10.05.2022 в 12:02 → Deleted]
    Загрузка в Telegram картинок или видио группой устроено так, что они загружаются группой - но объекты прилетают по вебхук отдельно.

    Разница в загрузке группой и по-отдельности, в том что при групповой загрузке есть поле в объекте по типу photo_group_id (название точное не помню), которое объединяет объекты в одну загрузку.

    Можно по этому полю отслеживать, но здесь проблема - на какой объект последний в этой группе))) понятно что их максимум вроде в один групповой можно загрузить 10 штук, а если меньше - как бот об этом узнает?

    Я делал в одном проекте таким образом. Пользователь загружает фото или видео, группой или по одному, и после того как приходит объект в бот - после его успешного добавления - выводил уведомление об успехе или проблеме кнопки закончить загрузку или отменить все. Нажатие кнопок запускало действие по закрытию или остановке загрузке.
  • Deleted [10.05.2022 в 13:16 → iMakeBots]
    Поле называется media_group_id. Таки да, проблема узнать количество загружаемых фото. Можно было паставить задержку на 5 сек, пока проверяються все хуки на наличие media_group_id. Но это не вариант так как при плохом интернете у юзера можно и не дождатся даже первого изображения.

    Возможно есть какие то метаданные в момент = выбора изображений, написания Caption, нажатия кнопки Send? Возможно там есть количество предполагаемых фото. Если нет, то как вы отлавливаете обьект приходящий в бот?
  • iMakeBots [10.05.2022 в 13:20 → iMakeBots]
    При реализации своего варианта не нашел таких мета, это было года три назад, может сейчас уже есть - но что-то мне кажется врядли)))