Организовал функцию копирования фото на свой сервер,
но как сохранить фотографии если пользователь за один раз отправил несколько фото.
Есть [media_group_id] но как его использовать не могу сообразить, поисковик тоже не дал результатов.
function savePhoto($file_id, $chat_id) {
$ch = curl_init($GLOBALS['api'] . '/getFile?file_id='.$file_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$res = curl_exec($ch);
curl_close($ch);
$res = json_decode($res, true);
$file_path = $res['result']['file_path'];
$file_url = 'https://api.telegram.org/file/bot' . TOKEN . '/' . $file_path;
$name_file = end(explode("/", $file_path));
$save_file = __DIR__ . "/images/$chat_id/" . $name_file;
file_put_contents($save_file , file_get_contents($file_url));
sendMessage($chat_id, " Фото скопировано ", $replyMarkup);
}
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.
Медиа будут приходить как обычные фото или видео, с одним отличием - это наличие параметра media_group_id
Можно попросить подробнее показать. Потому что у меня это не срабатывает, при групповой отправке фото, на сервер копируется только одна фотография из группы.
Там показывать то нечего)) вы отправляете медиагруппу из 10 файлов - на сервер придет от телеграм 10 сообщений с данными по каждому медиа но у каждого будет дополнительный параметр
Разобрался почему у меня загружалось только одно изображение из группы, после первой проверки что пришло я чистил состояние бота, поэтому далее код уже не срабатывал.
Ещё один вопрос ! Можно ли как то на начальном этапе определить сколько фотографий в [media_group_id] ? Нужно это для того что бы понимать когда придёт последнее фото из группы, чтобы перейти к следующему этапу работы бота.
К сожалению нет)))