@rusgayfer

Почему приходит пустой ответ photo?

// Функция вызова API
	function by($method, $array = false) {
		$response = curl("https://api.vk.com/method/".$method, $array);
		$json = json_decode($response, true);
		if($json["error"]["error_msg"]) {
			return $json["error"];
		} else {
			return $json["response"];
		}
	}
	
    // Функция сохранения картинки на сервер	
	    function download($picture = null, $group = null) {
		global $token, $group_post;
		$pic = curl_init($picture);
		$file = fopen("tools/image.jpg", "wb");
		curl_setopt($pic, CURLOPT_FILE, $file);
		curl_setopt($pic, CURLOPT_HEADER, 0);
		curl_exec($pic);
		curl_close($pic);
		$getWallUploadServer = by("photos.getWallUploadServer", array("group_id" => $group_post, "access_token" => $token));
		$upload = curl($getWallUploadServer["upload_url"], array("file1" => "@".dirname(__FILE__)."/image.jpg"));
		$json = json_decode($upload, true);
		//print_r($json);
		$saveWallPhoto = by("photos.saveWallPhoto", array("group_id" => $group_post, "photo" => $json["photo"], "hash" => $json["hash"], "server" => $json["server"], "access_token" => $token));
		print_r($saveWallPhoto);
		return $saveWallPhoto[0]["id"];
	}

  // Функция загрузки изображения
	function curl($url, $upload = false) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 AlexaToolbar/alxg-3.1');
		if ($upload) { 
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $upload);
		}
		$response = curl_exec($ch);
		curl_close($ch);
		//print_r($response);
		return $response;
	}


Array
(
    [error_code] => 100
    [error_msg] => One of the parameters specified was missing or invalid: photos_list is invalid
    [request_params] => Array
        (
            [0] => Array
                (
                    [key] => oauth
                    [value] => 1
                )

            [1] => Array
                (
                    [key] => method
                    [value] => photos.saveWallPhoto
                )

            [2] => Array
                (
                    [key] => group_id
                    [value] => 71359952
                )

            [3] => Array
                (
                    [key] => photo
                    [value] => []
                )

            [4] => Array
                (
                    [key] => hash
                    [value] => 9e0c8da37b6dd9c2e1a91d5f245ae58e
                )

            [5] => Array
                (
                    [key] => server
                    [value] => 840629
                )

        )

)


Выдает такое картинку не видит php 7.0. А когда ставлю php 5.4,5.5 все работает
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
@rusgayfer Автор вопроса
Заработало вот так:

$upload = curl($getWallUploadServer["upload_url"], array("file1" => new CURLFile(dirname(__FILE__)."/image.jpg")));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Alibek-kz
Вы там не отправляли параметр photos_list.

Как это работал на 5.4, если ошибка не в php.
Ответ написан
Ваш ответ на вопрос

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

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