В
elseif (array_key_exists("photo", $data['message']))
скрипт ловит только первый file_id и дальше выполняет $this->addProductPhoto().
Остальные file_id прилетают уже после выполнения кода и отображения кнопок. Возможно как-то дождатся всех изображений и потом в цикле их передать в addProductPhoto()?Или у кого то есть другая идея? Спасибо.
Разница в загрузке группой и по-отдельности, в том что при групповой загрузке есть поле в объекте по типу photo_group_id (название точное не помню), которое объединяет объекты в одну загрузку.
Можно по этому полю отслеживать, но здесь проблема - на какой объект последний в этой группе))) понятно что их максимум вроде в один групповой можно загрузить 10 штук, а если меньше - как бот об этом узнает?
Я делал в одном проекте таким образом. Пользователь загружает фото или видео, группой или по одному, и после того как приходит объект в бот - после его успешного добавления - выводил уведомление об успехе или проблеме кнопки закончить загрузку или отменить все. Нажатие кнопок запускало действие по закрытию или остановке загрузке.
Возможно есть какие то метаданные в момент = выбора изображений, написания Caption, нажатия кнопки Send? Возможно там есть количество предполагаемых фото. Если нет, то как вы отлавливаете обьект приходящий в бот?