Всем привет. Пишу скрипт для добавления постов в группу:
$dataSend = array(
'owner_id' => "-123456",
'message' => "Hello wall.post!",
'attachments'=> "photo-123456_xxxxxxxxx" // where xxxxxxxxx = media_id
) ;
$vkAPI->api("wall.post",$dataSend);
Работает, осталось прикрепить фото. Подскажите пож как получить media_id
?
Вот держите рабочий код:
$accessToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$vkAPI = new \BW\Vkontakte(['access_token' => $accessToken]);
$publicID = -$group_id; // group_id
$getURL = array(
'group_id' => $group_id,
);
if($vkAPI->api("photos.getWallUploadServer",$getURL)){ // получаем upload_url
$result = $vkAPI->api("photos.getWallUploadServer",$getURL);
} else {
echo "ERROR URI<BR>";
}
$curl = curl_init(); //загружаем фото и получаем photo_id и owner_id
$file = DIR_IMAGE.'0qDLZ0kw0I.jpg'; // путь к загружаемому файлу
$file = curl_file_create($file, mime_content_type($file),pathinfo($file)['basename']);
curl_setopt($curl, CURLOPT_URL, $result['response']['upload_url']);
curl_setopt($curl, CURLOPT_POST, true);
$charset = array(
'Content-Type' => 'multipart/form-data',
'charset' => 'utf-8',
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $charset );
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$response_image = json_decode(curl_exec($curl));
curl_close($curl);
$request_params = array(
'group_id'=>"$group_id",
'photo' => $response_image->photo,
'server' => $response_image->server,
'hash' => $response_image->hash,
);
$getPhoto = $vkAPI->api("photos.saveWallPhoto",$request_params);
$photo_id = $getPhoto['response'][0]['pid'];
$owner_id = $getPhoto['response'][0]['owner_id'];
$dataSend = array( // подготавливаем наш Post
'owner_id' => $publicID,
'message' => "I'm new Post!",
'attachments'=> "photo".$owner_id."_".$photo_id.", https://google.com/" // where 319485978 = media_id
) ;
if($vkAPI->api("wall.post",$dataSend)){
$vkAPI->api("wall.post",$dataSend);
echo "Post добавлен!<BR>";
} else {
echo "ERROR! Ищем ошибку<BR>";
}
Инфа по докам описана, так что повторно добавлять не буду. Всем добра!
Чтобы выяснить этот media_id, нужно вначале либо самостоятельно загрузить фотографию на сайт, прежде чем публиковать запись, либо взять уже загруженную ранее.
Для загрузки фотографии вам придётся выполнить несколько шагов:
Подробнее процедура описана в документации на странице «Загрузка файлов».
Разумеется, если фото уже присутсвует на сайте к моменту публикации, то всё проще. Можно подглядеть этот meida_id в ссылке на фотографию.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Почему, после того, как будет совпадение, то значение сессии, минусуется только 1 раз?
Интересует вопрос: почему при отправке формы на почту приходят данные в неформатируемом виде (в одну строчку) и как это исправить?
ЗдравствуйтеЕсть таблица prod , в ней ячейка id_specz , в которой значение 3,2,1