Como usar a API do gráfico do Facebook para recuperar fotos do fã carregadas na parede da página de fãs?

Estou criando uma galeria de fotos externa usando PHP e a API do gráfico do Facebook. Ele puxa as miniaturas, bem como a grande imagem dos álbuns na nossa Página de fãs do Facebook.

Tudo funciona perfeitamente, exceto que só posso recuperar fotos que um ADMIN publica em nossa página. (graph.facebook.com/myalbumid/photos) Existe uma maneira de usar o gráfico api para carregar fotos carregadas publicamente dos fãs?

Quero recuperar as fotos do álbum “Fotos do”, mas tentar obter a ID para a consulta gráfica não é como outros álbuns … parece assim: http://www.facebook.com/media/set/?set=o.116860675007039

Outra nota: a única maneira de chegar perto de recuar esses dados é usando a opção “alimentação”. graph.facebook.com/pageid/feed seja: graph.facebook.com/pageid/feed

EDIT: Isto é tão longe quanto eu conseguiria, funciona, mas tem certas questões abaixo. Talvez alguém possa expandir isso, ou fornecer uma solução melhor. (Usando FB PHP SDK)

 api("/YourID/tagged"); $maxitem =10; $count = 0; foreach($photos['data'] as $photo) { if ($photo['type'] == "photo"): echo "", "
"; endif; $count+= 1; if ($count >= "$maxitem") break; } ?>

Problemas com isso:

1) O fato de eu não conhecer um método para o gráfico consultando “tipos” específicos de Tags, tive que executar uma declaração condicional para exibir fotos.

2) Você não pode efetivamente usar o “? Limite = #” com isso, porque, como eu disse, a consulta “marcada” contém todos os tipos (foto, vídeo e status). Então, se você estiver indo para uma galeria de fotos e deseja evitar a execução de uma consulta inteira usando o limite, você perderá imagens.

3) O único conteúdo que aparece na consulta “marcada” é de pessoas que não são Administradores da página. Este não é o fim do mundo, mas não entendo por que o Facebook não se permitiria mostrar esses dados, desde que você o publicasse “como você mesmo” e não como a página.

Você precisa recuperar todos os álbuns e depois obter todas as fotos. Isso pode ser feito facilmente usando o FQL:

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

EDITAR:
Além disso, você precisa consultar a tabela de stream para obter as postagens da parede e verificar se você possui anexos e o tipo de anexo:

 SELECT attachment FROM stream WHERE source_id = 116860675007039 

Resultado:

 [ { "attachment": { "media": [ { "href": "http://www.facebook.com/photo.php?fbid=1801693052786&set=o.116860675007039", "alt": "test", "type": "photo", "src": "http://img.bestphpide.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.bestphpide.com/php/StEh3RhPvjk.gif", "fb_object_type": "photo", "fb_object_id": "6672812206412558147" } }, { "attachment": { "description": "" } }, ...etc ] 

experimente este FQL:

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

filter_key = “others” – isso irá filtrar mensagens de todos os outros, mas não do tipo Admin = “” – isso irá filtrar os comentários, então deixá-lo com fotos (talvez vídeos e outras coisas de strenge, mas a remoção de mensagens de texto irá reduzir o resultado massivamente)