Теперь я отправляю одну фотографию на стену следующим образом:
$response = $facebook->api("/$group_id/photos", "POST", array( 'access_token=' => $access_token, 'message' => 'This is a test message', 'url' => 'http://d24w6bsrhbeh9d.cloudfront.net/photo/agydwb6_460s.jpg', ) );
Он отлично работает, но могу ли я как-то опубликовать несколько фотографий, что-то вроде этого:
Заранее спасибо!
Вы можете выполнять пакетные запросы, как указано здесь: https://stackoverflow.com/a/11025457/1343690
Но его просто прокрутить изображения и опубликовать их напрямую.
foreach($photos as $photo) { //publish photo }
(относительно группировки фотографий на стене)
Эта группировка выполняется автоматически, если некоторые фотографии загружаются в тот же альбом .
В настоящее время вы не можете создать альбом в группе через Graph API – он не поддерживается (на данный момент), см. Эту ошибку .
Но вы можете это сделать – создайте альбом вручную, а затем получите album_id
by-
\GET /{group-id}/albums
, затем используйте код с album_id
вместо group_id
–
foreach($photos as $photo){ $facebook->api("/{album-id}/photos", "POST", array( 'access_token=' => $access_token, 'name' => 'This is a test message', 'url' => $photo ) ); }
Я проверил его, посмотрю результат –
Теперь вы можете публиковать несколько изображений в одном сообщении в своем фиде или на странице:
Для каждой фотографии в истории загрузите ее без публикации с помощью конечной точки {user-id}/photos
с аргументом published=false
.
Вы получите идентификатор для каждой загруженной вами фотографии:
{ "id": "10153677042736789" }
Публикуйте многофакторную историю, используя конечную точку {user-id}/feed
и используя идентификаторы, возвращенные путем загрузки фотографии
$response = $facebook->api("/me/feed", 'POST', array( 'access_token=' => $access_token, 'message' => 'Testing multi-photo post!', 'attached_media[0]' => '{"media_fbid":"1002088839996"}', 'attached_media[1]' => '{"media_fbid":"1002088840149"}' ) );
Источник: публикация многофайловой истории
На самом деле вы можете загрузить многоэтажную фотографию (я сделал это с помощью Graph Api и PHP), но проблема возникает, если вам нужно запланировать это сообщение. Ваш пост – это график, но также он отображается на фиде страницы.
PS Я использую Graph Api v2.9
PHP-код
$endpoint = "/".$page_id."/photos"; foreach ($multiple_photos as $file_url): array_push($photos, $fb->request('POST',$endpoint,['url' =>$file_url,'published' => FALSE,])); endforeach; $uploaded_photos = $fb->sendBatchRequest($photos, $page_access_token); foreach ($uploaded_photos as $photo): array_push($data_post['attached_media'], '{"media_fbid":"'.$photo->getDecodedBody()['id'].'"}'); endforeach; $data_post['message'] = $linkData['caption']; $data_post['published'] = FALSE; $data_post['scheduled_publish_time'] = $scheduled_publish_time; $response = $fb->sendRequest('POST', "/".$page_id."/feed", $data_post, $page_access_token); $post_id = $cresponse->getGraphNode()['id'];
Невозможно опубликовать более одного снимка в одном вызове API-интерфейса.
См. Документацию: https://developers.facebook.com/docs/graph-api/reference/user/photos