Frage

Ich verwende die aktuellste Version der Facebook-SDK (die verbinden lässt etwas der ‚graph API‘ genannt, obwohl ich nicht sicher) bin. Ich habe Facebook Beispielcode angepasst, um mich zu Facebook verbinden und das funktioniert ... aber ich kann nicht eine Liste meiner Freunde bekommen.

$friends = $facebook->api('friends.get');

Dies erzeugt die Fehlermeldung: "Fatal error: Uncaught OAuthException: (# 803) Einige der Aliase Sie nicht angefordert existieren: friends.get in /mycode/facebook.php auf der Leitung geworfen 543"

Keine Ahnung, warum das so ist oder, was das bedeutet. Kann mir jemand die richtige Syntax sagen (für den neuesten Facebook-API), um eine Liste von Freunden zu bekommen? (Ich habe versucht, "$ Freunde = $ Facebook-> API-> friends_get ();" und eine andere Fehlermeldung erhalten: „Fatal error: Aufruf einer Elementfunktion friends_get () auf einem Nicht-Objekt in /mycode/example.php auf Linie 129" ).

Ich kann vor diesem Punkt in meinem Code bestätigen, dass die Dinge sind in Ordnung: Ich bin mit einer gültigen Sitzung mit Facebook verbunden und ich kann meine Informationen erhalten und es auf den Bildschirm Dump nur ... also diesen Code ausgeführt perfekt vor der gescheiterte friends.get Aufruf:

$session = $facebook->getSession();
if ($session) {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
}
print_r($me);
War es hilfreich?

Lösung

Ich denke, das ist, was Sie wollen:

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

Andere Tipps

Dies ist Live-Version von PHP-Code Ihre Freunde von Facebook zu bekommen

<?php
    $user = $facebook->getUser();


    if ($user) {
        $user_profile = $facebook->api('/me');
        $friends = $facebook->api('/me/friends');

        echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';
    }
?>

Immer die Freunde wie @nfvs beschreibt, ist ein guter Weg. Es gibt ein mehrdimensionales Array mit allen Freunden mit Attributen ID und den Namen (nach ID bestellt). Sie können die Freunde Fotos wie diese:

foreach ($friends as $key=>$value) {
    echo count($value) . ' Friends';
    echo '<hr />';
    echo '<ul id="friends">';
    foreach ($value as $fkey=>$fvalue) {
        echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
    }
    echo '</ul>';
}

Nur Köpfe für jedermann oben über diese Frage Stolper v2.0 des API Graph mit: Dies wird nicht mehr funktionieren. In v2.0, ruft / me / Freunde gibt nur eine Liste der Freunde der Person, die auch die App verwenden :

  
      
  • Ein Zugriff Benutzer mit user_friends Erlaubnis Token benötigt, um die aktuellen Person Freunde zu sehen.
  •   
  • Dies wird nur keine Freunde zurückgeben, die (via Facebook Login) verwendet haben, die App den Antrag zu machen.
  •   
  • Wenn ein Freund der Person, die user_friends Genehmigung ablehnt, wird dieser Freund zeigt nicht für diese Person in der Freundesliste auf.
  •   

Wenn Sie die REST-Endpunkt verwenden möchten,

$friends = $facebook->api(array('method' => 'friends.get'));

sonst, wenn Sie die Grafik-API verwenden, dann verwenden,

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

in der jüngsten Version von Facebook sdk hat Facebook die Funktion deaktiviert, die lassen Sie einige eine Freundesliste zugreifen aus Sicherheitsgründen ... die Dokumentation prüfen mehr ...

lernen

Verwenden FQL statt, es ist ein wie SQL, aber für Facebook-Datentabellen und leicht bedeckt Daten abfragen you'de wie zu machen. Sie werden nicht alle diese / xx / xxx / xx Anrufe verwenden müssen, wissen nur die Tabellen und Spalten, die Sie in intereseted werden.

$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api( "/fql?q=" . urlencode($myQuery) )

Große interaktive Beispiele unter http://developers.facebook.com/docs/reference/fql /

  

Mit CodeIgniter OAuth2 / 0.4.0 Funken,

     

in Auth.php Datei,

$user = $provider->get_user_info($token);

$friends = $provider->get_friends_list($token);
print_r($friends);
  

und in Facebook.php Datei unter Provider, fügen Sie die folgende Funktion,

    public function get_friends_list(OAuth2_Token_Access $token)
    {
            $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
                    'access_token' => $token->access_token,
            ));
            $friends = json_decode(file_get_contents($url),TRUE);

            return $friends;
    }

prints the facebenter code hereook friends.
friends.get

Ist-Funktion eine Liste Freund

bekommen

Und ja, das ist am besten

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

    echo '<ul>';
    foreach ($friends["data"] as $value) {
        echo '<li>';
        echo '<div class="pic">';
        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
        echo '</div>';
        echo '<div class="picName">'.$value["name"].'</div>'; 
        echo '</li>';
    }
    echo '</ul>';

header ( 'Content-type: text / html; charset = utf-8');

Eingang auf Ihrer Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top