Не выходит прикрепить изображение к посту в группе. По порядку: определяю путь к пикче, передаем в метод getWallUploadServer айди группы без минуса и токен
$photo_path = dirname(__FILE__).'/photo1.jpg';
$postData = array("file1" => '@'.$photo_path);
$getWallUploadServer = "https://api.vk.com/method/photos.getWallUploadServer?group_id=$group_id_for_method&access_token=$token&v=5.80";
Берем upload_url, передаем пикчу и вытаскиваем значения server, photo, hash
$response = file_get_contents($getWallUploadServer);
$response = json_decode($response)->response->upload_url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $response);
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, $postData);
$result = json_decode(curl_exec($ch));
$server = $result->server;
$photo = $result->photo;
$hash = $result->hash;
Дальше передаем server, hash и photo в метод saveWallPhoto и вытаскиваем оттуда id фотографии:
$saveWallPhoto = file_get_contents("https://api.vk.com/method/photos.saveWallPhoto?access_token=$token&v=5.37&group_id=$group_id_for_method&server=$server&photo=$photo&hash=$hash");
$attachment = json_decode($saveWallPhoto)->response[0]->id;
Ну и в финале формирую изображение по его id и передаю в метод wallPost
header("Location: https://api.vk.com/method/wall.post?owner_id=$group_id&from_group=1&access_token=$token&attachments=photo{$group_id}_{$attachment}&v=5.37");
И вижу ошибку "One of the parameters specified was missing or invalid: invalid message param"
При этом, если открыть какое-то изображение и взять его параметры photo, к примеру photo-24149106_456241216
и вручную вставить в свою финальную ссылку, это изображение отлично постится в группу. Видимо, мое id как-то неверно формируется, потому что не вижу, где еще может быть ошибка. Если кто работал с подобным, подскажите, второй день не могу понять, как исправить.
andreymal подсказал верно:
group_id тоже нужно вытаскивать из ответа saveWallPhoto. Точнее, это вообще не group_id, а owner_id, и он будет отличаться от вашего group_id
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Делаю инструмент для удобства работы с неким сторонним сайтом, на одном из этапов столкнулся с проблемой, при авторизации через CURL, на стороннем...
У меня есть скрипт, мне нужно чтоб он срабатывал два раза в деньКак на php написать, чтоб этот скрипт так работал?