geometria
@geometria

Почему не отправляется картинка на стену VK?

мой скрипт возвращает на странице такую ошибку:
[error_code] => 100
            [error_msg] => One of the parameters specified was missing or invalid: photos_list is invalid
            [request_params] => Array
                [1] => Array
                        (
                            [key] => photo
                            [value] => []
..............................

картинка находится по адресу mysite.ru/stena/1.jpg
а скрипт mysite.ru/stena/script.php выглядит так:
<?php
$message = 'Caption';
$message_short = 'Foto name';
$token = 'secret';
if (!empty($message)){
//////////////// post
$v = '5.62'; //версия vk api
$image_path = "/stena";// путь до картинки
$post_data = array("/1.jpg" => '@'.$image_path);
// получаем урл для загрузки
$url = file_get_contents("https://api.vk.com/method/photos.getWallUploadServer?user_id=".$user_id."&v=".$v."&access_token=".$token); //
$url = json_decode($url)->response->upload_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);
$message_short = urlencode($message_short);
$turl = "https://api.vk.com/method/photos.saveWallPhoto?server=".$result['server']."&photo=".$result['photo']."&hash=".$result['hash']."&v=5.62"."&caption=".$message_short."&access_token=".$token;
$safe = file_get_contents($turl);
$safe = json_decode($safe,true);//получаем id загруженной картинки
if (!empty($safe['response'][0]['id'])){
//создаём саму запись
$query=file_get_contents("https://api.vk.com/method/wall.post?owner_id=".$user_id."&user_id=".$user_id."&v=5.62&attachments=photo2493914_".$safe['response'][0]['id'] ."&message=".urlencode($message)."&access_token=".$token);
//в случае с постингом в группу owner_id - id юзера владельца приложения
echo $query.'<br> fin';
}
else echo 'fail';//распечатываем массив $safe и смотрим в чём проблема
echo '<pre>';
print_r($safe);
echo '</pre>';
}
  • Вопрос задан
  • 150 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Runnin
Беседа по vk_api, вступай - https://vk.cc/8WE9bL
Вы используете абсолютный путь, возможно в этом проблема.
Если картинка находится в той же папке, что и скрипт, то писать надо так:
"./stena"
"./1.jpg"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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