2012-03-30 11 views
0

In einer meiner Facebook-Anwendungen muss ich die Benutzer, die ich in meinem db (Breite ihre IDs) haben. Ich brauche ihren Namen, Foto und andere Details von Facebook. Insbesondere muss ich die Top 100 Benutzer (unter Berücksichtigung ihrer Punkte in der App) auflisten.Facebook Anwendung Benutzername Anfrage fql oder Grafik api

ich getestet habe mit ihm FQL:

$query = "select my top 100 users"; 
$result = mysql_query($query); 

// Foreach user 

while ($row = mysql_fetch_array($result)) { 

    $user_id = $row['user_id']; 
    $total_score = $row['total']; 

    $fql = "select name from user where uid=" . $user_id; 
    $param = array(
     'method' => 'fql.query', 
     'query'  => $fql, 
     'callback' => '' 
    ); 

    // Get user names through fql query 

    $fqlResult = $facebook->api($param); 
    $user_name = $fqlResult[0]['name']; 

    // Print user details, photo, name, total score.. 

} 

genug die FQL Weise effizient ist?

ODER

Ein anderer Weg? Wie das Diagramm api:

function getName($id) { 

    $facebookUrl = "https://graph.facebook.com/".$id; 
    $str = file_get_contents($facebookUrl); 
    $result = json_decode($str); 
    return $result->name; 
} 
+0

$ query = "wähle meine Top 100 Benutzer"; ??? Was für eine lustige Frage ist das? @michalis? –

+0

ignorieren Sie das. Sagen wir, wir haben unsere IDs. –

+0

ok ignoriert. . . –

Antwort

0

Do 1 Treffer zu Facebook mit FQL mit dem uid = xx oder uid = xx etc und sie alle auf einmal bekommen.

Auch die Graph-API ist die bevorzugte Methode, um mit Facebook zu kommunizieren. Sie müssten jedoch weiter nachsehen, ob Sie Details für mehrere Benutzer gleichzeitig erfassen können.

Wenn Sie jetzt weiter denken, müssen Sie das access_token nicht an diese Aufrufe mit Offline-Zugriff (die abgeschrieben werden) anhängen, um die Informationen zu erhalten.

Ich denke eigentlich eine bessere Möglichkeit, Ihre gesamte App schreiben würde, um diese Informationen zu erfassen, wenn ein Benutzer eine Verbindung zu Ihrer App und nicht ein Massenprozess.

+0

danke! Ich werde den letzten betrachten! –

+0

Ich stimme Adam mit dem Zwischenspeichern dieser Informationen überein. Außerdem können Sie die Benutzerbild-URL ohne eine FQL-Abfrage erstellen, sodass die Bild-URL nicht zwischengespeichert werden muss. –

+0

Aber was passiert, wenn einige der Benutzer, die aufgelistet werden sollen, noch nicht erfasst wurden? Zum Beispiel sendet ein Benutzer mehrere Anfragen an Benutzer, wenn sie die Anfrage annehmen, die sie in der Datenbank erfasst haben. Aber ich sollte auch auflisten und die anderen Benutzer, die die Anfrage noch nicht akzeptiert haben. Angenommen, der Benutzer, der die Anfragen sendet, sieht eine Liste mit allen von ihm angerufenen Benutzern. –

Verwandte Themen