RedOctoberCZ
@RedOctoberCZ

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

Здравствуйте, коллеги!

В настоящий момент я делаю пост картинки на стену примерно так:

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

Всё работает прекрасно, но хотелось бы узнать, как можно постить несколько картинок разом? Что-то вроде этого:

0761e795eadd4680b12ee6cd52756462.jpg

На stackoverflow посоветовали просто постить каждую картинку отдельным API вызовом, и Facebook должен автоматически объединить эти картинки в единый пост (если интервал между ними менее минуты), но на практике этого не происходит. Подскажите, пожалуйста, как это можно сделать?
  • Вопрос задан
  • 11211 просмотров
Решения вопроса 1
RedOctoberCZ
@RedOctoberCZ Автор вопроса
В общем, чтобы запостить несколько фотографий в группу - нужно создать альбом в группе. Альбом в группе невозможно создать при помощи API, причём это известный баг, но его не спешат исправлять :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
webrider
@webrider
PM, PHP-developer
В общем так.
Для того, чтобы сделать пост с несколькими фотографиями нужно делать следующее:
$fb = new Facebook\Facebook([
			'app_id'  => $app_id,
			'app_secret' => $app_secret,
			'default_graph_version' => 'v2.4',
		]);
$images = ['http://site.ru/img1.jpg', 'http://site.ru/img2.jpg', 'http://site.ru/img3.jpg'];
$token = 'ВАШ ТОКЕН';
$group_id = 'ID группы';
$attached['message'] = 'Текст поста'; 
$i = 0;

foreach ($images as $image) { 
$response = $fb->post('/me/photos', [
	'url' => $image,
	 'published' => 'false' #Дабы они не появлялись на стене
], $token);
$graphNode = $response->getGraphNode();
 $attached['attached_media[' . $i . ']'] = '{"media_fbid":"' . $graphNode['id'] . '"}';
$i++;
}
#Далее, собственно, сам пост
$response = $fb->post("/{$group_id}/feed", $attached, $token);


Всех благ
Ответ написан
copyloc
@copyloc
Человек то я не глупый, просто притворяюсь
А массивом несколько URL? Я не уверен, просто мое предположение. Что-то типа:
$str = "ссыль1,ссыль2,ссыль3"; 
  $url = explode(",",$str);

А потом фором вытащить:
for($i = 0; $i < count($url); $i++) 
  { 
     echo $url[$i]." "; 
  }

И получится перечисления ссылок
Ответ написан
@barabylia
постишь сразу три поста с разными фото и одним и тем же текстом, тогда выходит стак фото (тестировал для пользователя, для страницы вроде не работает).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы