@evgchud
Ищу себя

Выборочно не загружаются фотографии на сервер Vkontakte, возможные причины?

Помогите с проблемой при загрузке на сервера Vkontakte фотографий. По какой-то причине часть фотографий не сохраняется. При выгрузке на сервер в контакте получаю ответ:
Array
(
    [server] => 638819
    [photos_list] => [{"photo":"fe0f4a4682:w","sizes":[["s","638819746","b57a","qxwzlvwGSmg",56,75],["m","638819746","b57b","PATwD_niuUM",97,130],["x","638819746","b57c","jxVeU0SLH6I",453,604],["y","638819746","b57d","nvpTMD4qgOQ",605,807],["z","638819746","b57e","bP5SsUTcwuc",810,1080],["w","638819746","b57f","XX9jFzb_y0Y",900,1200],["o","638819746","b580","Ob6onuUREpI",130,173],["p","638819746","b581","EdcoeN4JfR0",200,267],["q","638819746","b582","YpsE7a65V7g",320,427],["r","638819746","b583","Y7B-7yBibu0",510,680]],"kid":"98fbf90466a296a446f7156a3693def7","debug":"xswmwxwywzwwwowpwqwrw"}]
    [aid] => 265057844
    [hash] => a04973efcac15b4ef8a2a558a83e6993
    [gid] => 126766723
)


Ответ на сколько я понимаю верный. Далее сохраняю фото методом photos.save:
$params = [
'group_id'=>$group_id,
'album_id'=>$album_id,
'server'=> $response['server'],
'photos_list'=>$response['photos_list'],
'hash'=>$response['hash'],
'caption'=>$product['url'].$product['title'].'Цена: '.$product['price'].' руб.'.PHP_EOL.$product['description'].$product['size'].$product['material'].$product['brand'].$product['code'],
'access_token'=>$access_token,
'v'=>$v,
];
$vk_method = 'photos.save';
$url = $vk_url.$vk_method.'?'.http_build_query($params);

$response = json_decode(file_get_contents($url),true);


На это мне выводиться предупреждение:
Warning: file_get_contents(https://api.vk.com/method/photos.save?group_id=125769423&album_id=235078544&server=638819&photos_list=%5B%7B%22photo%22%3A%22fe0f4a4682%3Aw%22%2C%22sizes%22%3A%5B%5B%22s%22%2C%22638819746%22%2C%22b57a%22%2C%22qxwzlvwGSmg%22%2C56%2C75%5D%2C%5B%22m%22%2C%22638819746%22%2C%22b57b%22%2C%22PATwD_niuUM%22%2C97%2C130%5D%2C%5B%22x%22%2C%22638819746%22%2C%22b57c%22%2C%22jxVeU0SLH6I%22%2C453%2C604%5D%2C%5B%22y%22%2C%22638819746%22%2C%22b57d%22%2C%22nvpTMD4qgOQ%22%2C605%2C807%5D%2C%5B%22z%22%2C%22638819746%22%2C%22b57e%22%2C%22bP5SsUTcwuc%22%2C810%2C1080%5D%2C%5B%22w%22%2C%22638819746%22%2C%22b57f%22%2C%22XX9jFzb_y0Y%22%2C900%2C1200%5D%2C%5B%22o%22%2C%22638819746%22%2C%22b580%22%2C%22Ob6onuUREpI%22%2C130%2C173%5D%2C%5B%22p%22%2C%22638819746%22%2C%22b581%22%2C%22EdcoeN4JfR0%22%2C200%2C267%5D%2C%5B%22q%22%2C%22638819746%22%2C%22b582%22%2C%22YpsE7a65V7g%22%2C320%2C427%5D%2C%5B%22r%22%2C%22638819746%22%2C%22b583%22%2C%22Y7B-7yBibu0%22%2C510%2C680%5D%5D%2C%22kid%22%3A%2298fbf90466a296a446f7156a3 in D:\OpenServer\domains\localhost\savephotos2.php on line 75


При этом возвращает пустой результат и фото в альбоме группы не появляются. Вместо file_get_contents пробовал передавать курлом, ошибок не выводит, но также ничего не сохраняет.
Так как выгружаемый каталог небольшой, то проанализировав выгрузку определил, что не сохраняются одни и те же фото (из 344 не сохраняются 99). Вот для примера фото в красном не сохраняется, а фото в черном сохраняется. Фото с одного сайта, по размеру идентичны, что не так c фото в красном, почему не сохраняется, при этом как я понимаю на сервера в контакте оно ушло успешно?
Пробовал изменять размер, разрешение фото - не помогает.
7705d21d0f584d13a19e418985d0cb3f.jpg2f435fd3a55648f39605994c932cc43d.jpg
1) Если фото подходит по всем параметрам изложенным в документации, то какие могут быть причины отказа от загрузки? По-моему дело в самой фото, так как не загружаются одни и те же.

2) И еще вопрос по загрузке фото в альбом: API Vkontakte предусматривает загрузку не более 5 фотографий за один раз, при этом при сохранении фотографий в альбоме, вызовом метода photos.save предусмотрено один текстовой параметр caption, т.е. насколько я понимаю из документации при одновременной загрузке пяти фото комментарий у всех будет один и тот же?
Можно ли как-то передавать пять разных caption, у каждой фото свой?
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы