@yischyk

Почему photos_list пустой?

$token = 'TOKEN';

$group_id = 'GID';
$album_id = 'AID';
$v = '5.101'; 
$image_path = dirname(__FILE__).'/111.jpg';// путь до картинки
$post_data = array("file1" => '@'.$image_path);

// получаем урл для загрузки
 $url = file_get_contents("https://api.vk.com/method/photos.getUploadServer?album_id=".$album_id."&group_id=".$group_id."&access_token=".$token."&v=".$v);
$url = json_decode($url)->response->upload_url;
//print_r($url);

// отправка post картинки
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = json_decode(curl_exec($ch),true);
//print_r($result);

// сохраняем
$safe = file_get_contents("https://api.vk.com/method/photos.save?server=".$result['server']."&photos_list=".$result['photos_list']."&album_id=".$result['aid']."&hash=".$result['hash']."&group_id=".$group_id."&access_token=".$token."&v=".$v);
$safe = json_decode($safe,true);
print_r($safe);

в итоге выдает (см. тут a0316623.xsph.ru/test.php)

почему фото лист пустой?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
@cairus
PHP-разработчик
По ссылке выдает ошибку 100, один из параметров неверный. Может, токен старый, или в группИД забыли знак минус поставить (там вроде так надо). Могу скинуть похожий код по загрузке, правда, аватарки, но смысл один и тот же
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Скорее всего потому что у вас php новее 2013 года.

https://wiki.php.net/rfc/curl-file-upload

Отправка через @ уже давно не актуальна.

https://www.php.net/manual/en/curlfile.construct.php

// Create a cURL handle
$ch = curl_init('http://example.com/upload.php');

// Create a CURLFile object
$cfile = new CURLFile('cats.jpg','image/jpeg','test_name');

// Assign POST data
$data = array('test_file' => $cfile);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Execute the handle
curl_exec($ch);
Ответ написан
Ваш ответ на вопрос

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

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