Как использовать графический API Facebook для извлечения фан-фотографий, загруженных на стену страницы поклонников?

Я создаю внешнюю фотогалерею, используя PHP и графический API Facebook. Он тянет эскизы, а также большое изображение из альбомов на нашей странице Facebook Fan.

Все работает отлично, за исключением того, что я могу только получить фотографии, которые ADMIN отправляет на нашу страницу. (graph.facebook.com/myalbumid/photos) Есть ли способ использовать график api для загрузки публичных загруженных фотографий от поклонников?

Я хочу получить фотографии из альбома «Фотографии с», но попытка получить идентификатор для запроса графа не похожа на другие альбомы … это выглядит так: http://www.facebook.com/media/set/?set=o.116860675007039

Еще одно замечание: единственный способ, которым я приблизился к возврату этих данных, – использовать параметр «feed» .. ie: graph.facebook.com/pageid/feed

EDIT: Это примерно так, как я мог получить – он работает, но имеет некоторые проблемы, изложенные ниже. Может быть, кто-то может расширить это или обеспечить лучшее решение. (Использование FB PHP SDK)

 <?php require_once ('config.php'); // get all photos for album $photos = $facebook->api("/YourID/tagged"); $maxitem =10; $count = 0; foreach($photos['data'] as $photo) { if ($photo['type'] == "photo"): echo "<img src='{$photo['picture']}' />", "<br />"; endif; $count+= 1; if ($count >= "$maxitem") break; } ?> 

Проблемы с этим:

1) Тот факт, что я не знаю метода для графа, запрашивающего конкретные «типы» тегов, мне пришлось запустить условное выражение для отображения фотографий.

2) Вы не можете эффективно использовать «? Limit = #» с этим, потому что, как я уже сказал, «помеченный» запрос содержит все типы (фото, видео и статус). Поэтому, если вы собираетесь создать фотогалерею и хотите избежать выполнения всего запроса с помощью лимита, вы потеряете изображения.

3) Единственный контент, который появляется в «помеченном» запросе, – это люди, которые не являются админами на странице. Это не конец света, но я не понимаю, почему Facebook не позволил себе показывать эти данные до тех пор, пока вы разместили его «как вы», а не как страницу.

Вам нужно получить все альбомы, а затем получить все фотографии. Это можно легко сделать, используя FQL:

 SELECT pid,owner,src_small,src_big FROM photo WHERE aid IN ( SELECT aid FROM album WHERE owner = your_page_id ) 

РЕДАКТИРОВАТЬ:
Также вам нужно запросить таблицу потоков, чтобы получить настенные сообщения, затем проверьте, есть ли у вас вложения и тип вложения:

 SELECT attachment FROM stream WHERE source_id = 116860675007039 

Результат:

 [ { "attachment": { "media": [ { "href": "http://www.facebook.com/photo.php?fbid=1801693052786&set=o.116860675007039", "alt": "test", "type": "photo", "src": "http://img.ruphp.com/php/185861_1801693052786_1553635161_1863491_4978966_s.jpg", "photo": { "aid": "6672812206410774346", "pid": "6672812206412558147", "fbid": 1801693052786, "owner": 1553635161, "index": 11, "width": 246, "height": 198 } } ], "name": "", "caption": "", "description": "", "properties": [], "icon": "http://img.ruphp.com/php/StEh3RhPvjk.gif", "fb_object_type": "photo", "fb_object_id": "6672812206412558147" } }, { "attachment": { "description": "" } }, ...etc ] 

попробуйте этот FQL:

 SELECT message,attachment,comments FROM stream WHERE source_id=YOUR_PAGE_ID AND filter_key="others" AND type="" 

filter_key = "others" – это будет отфильтровать сообщения от всех остальных, но не от Admin type = "" – это отфильтрует комментарии, так что оставит вас с фотографиями (возможно, видео и другие вещи, но удаление текстовых сообщений уменьшит результат в широком масштабе)