2011-02-20 7 views
23

Qual è il modo migliore per ottenere TUTTE le immagini del profilo da un determinato utente? Di quali autorizzazioni ho bisogno?Facebook API: Ottieni tutte le immagini del profilo

So che posso accedere alla foto del profilo principale utilizzando https://graph.facebook.com/[uid]/picture, ma come faccio a ottenere l'intero album?

risposta

51

come ottengo l'intero album?

È necessario https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN] per ottenere l'array JSON di tutti gli album di un utente.

Otterrete tre cose importanti da qui id - ID album, name - nome album e type - tipo di album.

Quali autorizzazioni sono necessarie?

autorizzato è user_photossee here

Qual è il modo migliore per ottenere le immagini ALL profilo da un determinato utente?

Profilo Le immagini si trovano nell'album "Profilo foto". Per accedere all'album del profilo, è necessario esaminare l'array di album (come menzionato in precedenza), scorrere il set di risultati JSON, fino a ottenere un album con nome = Profile Pictures e digitare = profile. Ottieni id di questo oggetto. Questo è l'album di immagini del profilo.

Ora è possibile accedervi in ​​modo simile all'accesso ad altri album. Cioè, https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN] questo elencherà tutte le immagini del profilo dell'utente che sia mai stato caricato.

Spero che questo aiuti.

riferiscono: http://developers.facebook.com/docs/reference/api/

+1

E 'possibile per loro di cambiare il nome dell'album immagini del profilo? È affidabile fidarsi del nome dell'album? –

+2

si basano su 'type'. il nome non è modificabile per l'album 'profile pictures' AFAIK. – Nishant

+2

@Nishant, se ci sono molte immagini del profilo (ad esempio, 100 foto), come otterresti TUTTI usando "https://graph.facebook.com/ [ALBUM_ID]/photos? Access_token = [AUTH_TOKEN]' ? Perché attualmente si ferma dopo la 25a foto – NateHill

0

si utilizza il paging e di offset per ottenere il prossimo 5 o modificare il limite a tutto ciò.

9

È possibile passare il "limite = 0" per evitare completamente il paging e si ottengono tutte le foto in un'unica chiamata.

5

Per ottenere tutte le immagini del profilo, in primo luogo è necessario ottenere l'elenco di tutti gli album, ma se il conteggio di album più di 24 non si ottiene il resto e probabilmente non si otterrà l'album delle foto del profilo. Per questo è necessario passare limit=0 per ottenere l'URL degli album.

Ecco codice di esempio:

$tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=$yourAppId&redirect_uri=$yourRedirectUrl 
       &client_secret=$yourAppSecret&code={$_GET["code"]}"; 

$accessToken = file_get_contents($tokenUrl); 

$extAlbumUrl = "https://graph.facebook.com/me/albums?$accessToken&limit=0"; 

$albums = json_decode(file_get_contents($extAlbumUrl)); 
1

c'è qualche modo per ottenere i dischi di utenti pubblici senza alcuna relazione. Ad esempio, non sono amico dell'utente "foo", ma voglio le sue foto. Posso vedere le sue foto nell'interfaccia utente di Facebook, ma non riesco a leggere il grafico.

Sto utilizzando explorer da Facebook con tutte le autorizzazioni e sto diventando sempre un JSON vuoto. C'è un modo per ottenere le foto che sto vedendo nell'interfaccia utente? Queste foto sono pubbliche.

reale esempio:

UI da facebook: https://www.facebook.com/sonia.milan.9/photos è possibile vedere tutte le sue foto.

Utilizzando grafico API: sonia.milan.9/album ritorno:

{ 
    "data": [ 
    ] 
} 
+0

Getting Siamo spiacenti, questo contenuto non è disponibile in questo momento al link –

1

Noi non arrivare direttamente tutte le immagini del profilo Prima di tutto dobbiamo recuperare tutti gli album usando sotto URL

https://graph.facebook.com/v2.10/ 472802896428726/albums?access_token={access_token}&fields=id,name,cover_photo,count,from,type

Filtro array utilizzando condizione in cui tipo = profilo e nome = Immagini profilo quindi utilizzare l'id album per ottenere foto usando sotto URL

https://graph.facebook.com/v2.10/ 124683854573967/photos?access_token={access_token}&fields=id,source