@dandandan

ВК API загрузить много фото в альбом (срабатывает ограничение и фото теряются)?

Пытаюсь загрузить фотографии в альбом и потом прицепить их к постам. 10 постов по 5-10 фотографий в посте. У вк есть ограничение 5 фото за раз. Я загружаю 1 фотку за раз, потом следующую... Использую код из последнего комментария от Анонимный Аноним тут Как загружать фото в альбом группы вконтакте? , слегка модифицировав его под себя.
В цикле обхожу массив постов, затем цикл массива картинок. Каждую из них отдельно загружаю. Для этого вызываю:
$upload_server = $this->apiRequest('photos.getUploadServer', $data);

Всегда получаю адрес сервера типа такого:
https://pu.vk.com/c637916/upload.php?act=do_add&mid=4488320&aid=244178381&gid=147188527&hash=5c1f8c13c3b1fc0960dca09070a65d39&rhash=89056ea5afaa464efd22821a50df2fd4&swfupload=1&api=1


Загружаю по этому адресу картинку курлом. Всегда получаю массив типа такого:
(
    [server] => 637916
    [photos_list] => [{"photo":"ad9c7a5747:z","sizes":[["s","637916320","5d25e","lAaBU1AFbgs",75,54],["m","637916320","5d25f","8zrcadbGivE",130,94],["x","637916320","5d260","Sqq6-7EgVVo",604,437],["y","637916320","5d261","VKuA8whyUoM",807,584],["z","637916320","5d262","_u7tbmXNTk8",862,624],["o","637916320","5d263","9M0-sdHdXGg",130,94],["p","637916320","5d264","Nw3urqRH7jE",200,145],["q","637916320","5d265","dJHXVnmsu-k",320,232],["r","637916320","5d266","K3b6EP4CSv0",510,369]],"kid":"6bba8744f1326a9392b95c954925552b","debug":"xszmzxzyzzzozpzqzrz"}]
    [aid] => 244178381
    [hash] => bb87694c04dde19c550fb96c353f6e2b
    [gid] => 147188527
)


Далее делаю метод Photo.save и вот тут не все картинки сохраняются. Сохраняется первые 5 картинок (для каждой использую свой save - загрузил, сохранил). Далее картинки не сохраняются, далее опять максимум 5 сохраняется. Пробовал между картинками ставить даже sleep(300). Все равно то же самое.

В случае успешной загрузки получаю массив:
(
    [response] => Array
        (
            [0] => Array
                (
                    [pid] => 456239270
                    [id] => photo4488320_456239270
                    [aid] => 244178381
                    [owner_id] => -147188527
                    [user_id] => 4488320
                    [src] => https://pp.userapi.com/c637916/v637916320/5d25f/8zrcadbGivE.jpg
                    [src_big] => https://pp.userapi.com/c637916/v637916320/5d260/Sqq6-7EgVVo.jpg
                    [src_small] => https://pp.userapi.com/c637916/v637916320/5d25e/lAaBU1AFbgs.jpg
                    [src_xbig] => https://pp.userapi.com/c637916/v637916320/5d261/VKuA8whyUoM.jpg
                    [src_xxbig] => https://pp.userapi.com/c637916/v637916320/5d262/_u7tbmXNTk8.jpg
                    [width] => 862
                    [height] => 624
                    [text] => Экшн-камера Firefly 6S, съемка в 4К
                    [created] => 1495435197
                )
        )
)


Если загрузка неудачная, то скрипт (и вк) ничего не возвращает - пустой белый экран. Я так понимаю срабатывает ограничение ВК. Как его обойти или какой таймаут ставить? Мне кажется, что 5 минут - это уже ого-го какой большой таймаут, но и он не помог.

Жду ответов. Заранее спасибо.
  • Вопрос задан
  • 3069 просмотров
Решения вопроса 1
@dandandan Автор вопроса
Победил проблему : 414 Request-URI Too Long nginx/0.3.33
Переделал гет запрос для photo.save в пост запрос.

p.s. Всем спасибо за помощь
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
madmages
@madmages
Человек прямоходящий
есть подозрение что в такой ситуации нужно заново запросить сервер загрузки картинки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы