Задать вопрос
@svetlov97

Как загрузить фото в группу ВК через API PHP?

Ребят,кто работал с VK API помогите, пытаюсь загрузить фото curl`ом ничего не выходит( что я не так делаю?
вот код
<?php
$token = 'токен';
$group_id = 'ИД группы';
$album_id = 'ИД альбома';
$v = '5.68';
$image_path = dirname(__FILE__).'/image.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&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 = curl_exec($ch);
echo $result;


по идее должно выдать что то типо:
{
"server":123456,
"photos_list":"[{\"photo\":\"e9f2eba71b:y\",\"sizes\":[[\"s\",\"123456852\",\"e65f\",\"Br4ir9YAvO8\",75,41],[\"m\",\"123456852\",\"e660\",\"Lqpe1N8s8zY\",130,71],[\"x\",\"123456852\",\"e661\",\"tRFbnaIP_4c\",604,330],[\"y\",\"123456852\",\"e662\",\"8JhBOy0qR6o\",748,409],\"kid\":\"569c3da3b168b347315aa5adc92a953a\",\"debug\":\"xsymyxyyyoypyqyry\"}]",
"aid":98754321,
"hash":"22b333dbbef7cd9b1f9829b5f8713f86"
}

а выдает:
{
"server":123456,
"photos_list":"[]",
"aid":98754321,
"hash":"22b333dbbef7cd9b1f9829b5f8713f86"
}


P.S. Тех поддержка тоже как всегда могёт)
  • Вопрос задан
  • 361 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
Синтакс для загрузки файлов с @ устарел и не работает в PHP начиная с версии 5.5.0 (см. CURLOPT_POSTFIELDS)

Попробуйте вместо $post_data = array("file1" => '@'.$image_path);
через CURLFile:
$post_data = array("file1" => new CURLFile($image_path));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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