09
Мар
2018

VK Сообщества: как отправить сообщение с фотографией?

Мне нужно отправить сообщение от имени сообщества с вложением фото. Чтобы это сделать, нужно сначала загрузить фото, типа такого запроса:

$token = '3c30643586af83868a2c7b36b3fec07e66a36f284c480ef39404f49d42d22c8d6cba382a4633789d249c7';
$group_id = '162294758';
$album_id = '162294758';
$v = '5.64'; //версия vk api
$image_path = "http://worldwideshop.ru/vbot-dev/api/test.jpg"; //путь до картинки
$fp = fopen($image_path, 'r');

// получаем урл для загрузки
$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;
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_INFILE, $fp);
$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']."&gid=".$group_id."&access_token=".$token);
$safe = json_decode($safe,true);
print_r($safe);

Результат:

Array ( [error] => Array ( [error_code] => 5 [error_msg] => User authorization failed: method is unavailable with group auth. [request_params] => Array ( [0] => Array ( [key] => oauth [value] => 1 ) 1 => Array ( [key] => method [value] => photos.save ) [2] => Array ( [key] => server [value] => ) [3] => Array ( [key] => photos_list [value] => ) [4] => Array ( [key] => album_id [value] => ) [5] => Array ( [key] => hash [value] => ) [6] => Array ( [key] => gid [value] => 162294758 ) ) ) )

Вопросы:

  • Где ошибка в моем коде или что не так?
  • Куда правильно загружать это фото изначально? Если в альбом сообщества - он же должен быть публичным?
  • Подскажите простой пример для загрузки attachment(в сети или готовые большие решения или старые неработающие частички кода, типа ссылок на git тут).

Источник: https://ru.stackoverflow.com/questions/795585/vk-%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0-%D0%BA%D0%B0%D0%BA-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81-%D1%84%D0%BE%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%B5%D0%B9

Тебе может это понравится...

Добавить комментарий