Как опубликовать несколько фотографий через 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',
)
);
Он отлично работает, но могу ли я как-то опубликовать несколько фотографий, примерно так:
![enter image description here]()
Спасибо заранее!
Ответы
Ответ 1
Вы можете выполнять пакетные запросы, как указано здесь: fooobar.com/questions/699531/...
Но его просто прокрутить изображения и опубликовать их напрямую.
foreach($photos as $photo)
{
//publish photo
}
Изменить:
(относительно группировки фотографий на стене)
Эта группировка выполняется facebook автоматически, если некоторые фотографии загружаются в тот же альбом.
В настоящее время вы не можете создать альбом в группе через Graph API - он не поддерживается (на данный момент), см. эта ошибка.
Но вы можете сделать это - создать альбом вручную, затем получить album_id
\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
)
);
}
Я протестировал его, посмотри результат -
![enter image description here]()
Ответ 2
Теперь вы можете публиковать несколько изображений в одном сообщении в своем канале или на странице:
Для каждой фотографии в истории загрузите ее без публикации с помощью конечной точки {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"}'
)
);
Источник: Публикация многофайловой истории
Ответ 3
На самом деле вы можете загрузить многоэтажную фотографию (я сделал это с помощью Graph Api и PHP), но проблема возникает, если вам нужно запланировать это сообщение. Ваша должность - это расписание, но также она отображается на фиде страницы.
P.S. Я использую 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'];
Ответ 4
Сначала вам нужно будет загрузить каждую фотографию с опубликованным состоянием в false, а затем использовать идентификатор неопубликованных фотографий в конечную точку /me/feed для планирования фотографии. Расписание должно быть в течение 24 часов с момента загрузки фотографий, поскольку Facebook удаляет все неопубликованные фотографии в течение 24 часов.
Ссылка: https://developers.facebook.com/docs/graph-api/photo-uploads/
Ответ 5
Невозможно опубликовать более одного снимка в одном вызове API-интерфейсов.
См. документацию: https://developers.facebook.com/docs/graph-api/reference/user/photos