Постинг картинок Wall.post Вконтакте

288
17 апреля 2017, 06:24

Написал обработчик на PHP, который создает посты в группе. Но стал вопрос с тем, как постить картинку? Пытался добавить ссылкой в attachments, но выводит ссылку на картинку, а не добавляет саму картинку(которая находится по этой ссылке). Как это можно исправить?

if( isset( $_POST['send'] ) ){ 
$day = $_POST['day']; 
$month = $_POST['month']; 
$year = $_POST['year']; 
$hour = $_POST['hour']; 
$minute = $_POST['minute']; 
$photo = $_POST['link']; //тут хранится ссылка на картинку 
 
$senddate = $year."-".$month."-".$day." ".$hour.":".$minute.":00"; 
 
$date = strtotime($senddate); 
 
 
$url  = 'https://api.vk.com/method/wall.post?owner_id=-137337424&attachments='.$photo.'&publish_date='.$date.'&v=5.63&access_token=мойтокен'; 
 
echo '<iframe src="'.$url.'" width="400px" height="50px"></iframe>'; 
echo "Выполнено";

Answer 1

Перед тем, как отправлять пост на стену, необходимо отдельно загрузить публикуемое изображение и сохранить его.

Получаем адрес загрузки с помощью запроса на адрес: https://api.vk.com/method/photos.getWallUploadServer?access_token={your_access_token}&group_id={your_wall_id} В результате должен придти ответ с параметром upload_url - адрес загрузки фото.

Загружаем и сохраняем фото на сервере Вконтакте:

Отправляем файл по указанному адресу. Можно сделать так: curl -X POST -F 'photo=@/var/www/myphoto.jpg' '{upload_url}' или с помощью модуля CURL для php. При успешной загрузке придет ответ с параметрами(server, hash, photo), которые необходимо передать в следующем запросе для сохранения фото: https://api.vk.com/method/photos.saveWallPhoto?access_token={your_access_token}&group_id={your_wall_id}&server={server}&photo={photo}&hash={hash}

Получаем ответ с параметром id - ID загруженного изображения. Формируем значение параметра фото в поле attachments = photo{your_wall_id}_{photo_id}, где photo_id - id загруженного изображения на предыдущем этапе.

копипаст с http://blog.yamaker.ru/6-polnocennyy-avtoposting-v-gruppu-vkontakte-s-pomoschyu-api.html

READ ALSO
Обработка исключений PDO

Обработка исключений PDO

Я сделал проверку для prepare, почему если указать неверную таблицу, то не выводит сообщение Подключение не удалось?

192
Гибридные проекты и мануалы

Гибридные проекты и мануалы

Есть ли мануалы или кейсы, истории создания гибридных приложений, в которых в качестве бекенда использовались различные платформы? Например,...

195
Парсер новых товаров

Парсер новых товаров

Приведу полный примерРассмотрим доску объявлений

178