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

← К списку тем

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

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Загрузка в Telegram картинок или видио группой устроено так, что они загружаются группой - но объекты прилетают по вебхук отдельно.

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

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

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

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