2010-06-05 8 views
6

pomocą PHP 5.2.11 i nowy kod facebook wykres ...Facebook Graph API nie da mi dane obrazu

Jeśli zadzwonię

$ facebook-> api ("/ me");

uzyskać właściwą odpowiedź:

array 
    'id' => string '10700210' (length=8) 
    'name' => string 'Brandon Renfrow' (length=19) 
    'first_name' => string 'Brandon' (length=7) 
    'middle_name' => string '✫' (length=3) 
    'last_name' => string 'Renfrow' (length=7) 
    'link' => string 'http://www.facebook.com/brenfrow' (length=32) 
    'about' => string 'Spiritual birthday: 1/22/2005' (length=29) 
    ... 
    ... 

Ale jeśli zadzwonię

$facebook->api("/me/picture"); 

zawsze uzyskać odpowiedź:

null 

Czy ktoś wie dlaczego tak jest?

Odpowiedz

14

Cóż, chyba najlepszą odpowiedzią, jaką znalazłem, jest zadzwonienie pod numer http://graph.facebook.com/USER_ID?fields=picture, aby uzyskać adres URL obrazu. Szkoda, że ​​nie dokumentują takich rzeczy na swoim API, szczególnie gdy jest oczywiste, że jest to zepsute dla tak wielu ludzi.

+4

Dzięki za zrozumienie tego. Facebook Graph API to prawdopodobnie jeden z najgorszych i jeszcze gorszych udokumentowanych API, z którymi miałem do czynienia. – Luke

0

Po prostu podszedłem do mojego "/ me/picture" w przeglądarce i przekierowałem mnie do statycznego obrazu na jednym z serwerów CDN Facebooka. Być może przekierowanie rzuca kluczem w twoje połączenie api.

3

Jest jeszcze prostszy sposób, korzystając z dołączonego facebook api, zadzwoń:

$facebook->api("/me?fields=picture");

To uczyni Twój kod prostsze i bardziej eleganckie.

8

Jako dodatek do betaman „s answer, można przekazać parametry w osobnej tablicy tak:

$aResponse = $oFacebook->api('/me', array(
    'fields' => 'picture', 
    'type' => 'large' 
)); 
+0

+1 Właśnie to, czego potrzebowałem, dzięki! –

+0

Zwróci tylko mały obraz. – kschaeffler

+0

To musi być nowe. To na pewno zadziałało, kiedy to opublikowałem. – enobrev

6

Nie może nawet trzeba zrobić wywołanie API ... to wykorzystać na frontend :

<img src="//graph.facebook.com/USER_ID/picture?type=square" /> 

Czytaj więcej tutaj: http://developers.facebook.com/docs/reference/api/#pictures

+0

Właśnie przeczytałem ten stary post losowo dzisiaj i jest to odpowiedź na coś, nad czym zastanawiałem się przez chwilę –

+0

Działa to dobrze, ale dodaje opóźnienie, podczas gdy ścieżka obrazu jest rozwiązywana poprzez przekierowanie. – KeatsKelleher

1

Podczas korzystania $ facebook-> API (? "/ me pola = obraz"); działa, nie można przekazywać parametrów takich jak szerokość czy typ. Zamiast tego spróbuj wykonać następujące czynności:

$facebook->api('/me/picture?redirect=false'); 

To zadziałało dla mnie i pozwoli ci również przekazywać parametry.

Powiązane problemy