wake-up-neo.net

Wie kann ich das Benutzerprofilbild mithilfe der Facebook-Grafik-API anzeigen?

Ich möchte das Profilbild des Benutzers auf der Canvas-Seite meiner Anwendung anzeigen. Gibt es eine Möglichkeit, dies mithilfe der Grafik-API zu tun?

Ich weiß, dass ich es mit FBML machen kann, aber ich möchte das Profilbild auch an ein von mir erstelltes Flash-Spiel weitergeben, also müsste ich das Profilbild von der API abrufen und es als Variable senden. Hier ist der Code, den ich habe haben bisher

$facebook = new Facebook(array(
    'appId'  => FACEBOOK_APP_ID,
    'secret' => FACEBOOK_SECRET_KEY,
    'cookie' => true,
    'domain' => 'myurl/facebook-test'
));

$session = $facebook->getSession();

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . $me['picture'] . "<br />";
  echo "<div style=\"background:url(images/bg.jpg); width:760px; height:630px;\">" . "You last updated your profile on " . $updated . "</div>" . "<br /> your uid is" . $uid;

$me['picture'] scheint nicht zu funktionieren, aber ich bin immer noch sehr neu in der grafischen Benutzeroberfläche, und ich mache wahrscheinlich ein paar sehr laienhafte Fehler!

70
Odyss3us

Wenn Sie die Benutzer-ID kennen, lautet die URL für das Profilbild:

http://graph.facebook.com/[UID]/picture

anstelle von [UID] platzieren Sie Ihre $ uid-Variable, und diese URL kann an flash übergeben werden

125
Raine

um verschiedene Größen zu erhalten, können Sie den Parameter type verwenden:

Sie können die gewünschte Bildgröße mit dem Typargument angeben. Dieses sollte quadratisch (50 x 50), klein (50 Pixel breit, variable Höhe) und groß (ca. 200 Pixel breit, variable Höhe) sein: http : //graph.facebook.com/squall3d/picture? type = large .

81
squall3d

Sie können die Größe des Profilbilds auch ändern, indem Sie die folgenden Parameter eingeben.

https://graph.facebook.com/[UID]/picture?width=140&height=140

würde auch funktionieren.

22
Deepak Thomas
  //create the url
  $profile_pic =  "http://graph.facebook.com/".$uid."/picture";

 //echo the image out
 echo "<img src=\"" . $profile_pic . "\" />"; 

Funktioniert gut für mich

7
Kannan Prasad

[~ # ~] edit [~ # ~] : Also Facebook hat es wieder geändert! Keine Suche mehr nach Benutzernamen - habe die Antwort unten geändert ...

https://graph.facebook.com/{{UID}}/picture?redirect=false&height=200&width=200
  • UID = die Profil- oder Seiten-ID
  • redirect liefert entweder json (false) oder redirects zum image (true)
  • höhe und Breite ist die Ernte
  • erfordert keine Authentifizierung

z.B. https://graph.facebook.com/4/picture?redirect=false&height=200&width=2

Facebook Graph Bild doc

4
sidonaldson

Hier ist der Code, der für mich funktioniert hat!

Angenommen, Sie haben eine gültige Sitzung,

//Get the current users id
$uid = $facebook->getUser();

//create the url
$profile_pic =  "http://graph.facebook.com/".$uid."/picture";

//echo the image out
echo "<img src=\"" . $profile_pic . "\" />";

Danke geht an Raine, du da Mann!

3
Odyss3us

Eine sehr wichtige Sache ist, dass Sie wie bei anderen Graph-API-Anfragen die JSON-Daten nicht als Antwort erhalten, sondern der Aufruf ein HTTP-REDIRECT an die URL des Profilbilds zurückgibt. Wenn Sie die URL abrufen möchten, müssen Sie entweder den HTTP-Header der Antwort lesen oder Sie können FQLs verwenden.

1
Sanket Sahu

Beim Abrufen von Profilfotos mit CURL ist ein Problem aufgetreten. Ich habe eine Weile gedacht, dass bei der Implementierung der Facebook-API etwas nicht stimmt, aber ich muss ein wenig zu meiner CURL mit dem Namen hinzufügen:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
1
adjwilli