Как опубликовать несколько фотографий через API Facebook

Теперь я отправляю одну фотографию на стену следующим образом:

$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', ) ); 

Он отлично работает, но могу ли я как-то опубликовать несколько фотографий, что-то вроде этого:

введите описание изображения здесь

Заранее спасибо!

Solutions Collecting From Web of "Как опубликовать несколько фотографий через API Facebook"

Вы можете выполнять пакетные запросы, как указано здесь: 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