2010-04-27 13 views
33

Ich suche ohne Erfolg für eine Möglichkeit, eine FQL (Facebook Query Language) -Abfrage mit der neuen Open Graph API auszuführen.Wie kann ich eine FQL-Abfrage mit Facebook Graph API ausführen

Weiß jemand, wie ich das tun kann?

die Antwort hier mit diesem ausgezeichneten Beispiel gefunden: http://code.google.com/p/facebook-cpp-graph-api/

+0

Haben Sie die Graph-API-Dokumentation gelesen? http://developers.facebook.com/docs/api – inkedmn

+2

sicher, ich tat, und ich habe nicht verstanden, wie es geht – user63898

+3

Mit der Grafik API können Sie nicht. Allerdings ist die FQL-API immer noch verfügbar, wie mehrere Personen erwähnt haben. – Yuliy

Antwort

17

PHP Lösung:

$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...')); 
+0

ist FQL von der neuen Graph API unterstützt? Unter Support verstehe ich nicht den veralteten Support. – BlueSilver

+0

das ist die einzige Methode, die ich bisher gefunden habe –

+0

Das funktioniert für mich! :) – happyhardik

31

Hier ist ein Beispiel dafür, wie

FB.api(
     { 
      method: 'fql.query', 
      query: 'SELECT uid, first_name, last_name FROM user WHERE uid = ' + someUid 
     }, 
     function(data) { 
      // do something with the response 
     } 
); 
eine FQL Abfrage mit dem Graph API und JavaScript zu tun

Dies setzt voraus, dass Sie Ihre Seite bereits gemäß den Facebook-Richtlinien eingerichtet haben, wie hier gezeigt - http://developers.facebook.com/docs/reference/javascript/

+0

@happyhardik Es ist ein Diagramm api Beispiel mit Javascript mit facebook Python-SDK-Bibliothek. [FB.api docs] (http://developers.facebook.com/docs/reference/javascript/fb.api/) –

+2

Dies ist keine Graph-API. Nur FQL-Abfrage-Layer unter Graph-API und REST-API. – Raptor

+2

Dies führt nicht zu einem GraphAPI-Aufruf. FB.api, das auf diese Weise verwendet wird, ruft die veraltete REST-API auf. Ein Unterschied besteht beispielsweise darin, dass die GraphAPI-Aufrufe ETags unterstützen, sodass Sie API-Aufrufergebnisse auf dem Client zwischenspeichern können. –

1

Dies ist eine andere Möglichkeit, mehrere fql-Abfragen in kurzer Zeitspanne auszuführen.

// $ current_user = facebook id

$query1="SELECT uid, name FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query2="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query3="SELECT uid, name, work, education FROM user WHERE uid = $current_user"; 
$queries = array(
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query2)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query3)) 
      ); 

      $objs = $facebook->api('/?batch='.json_encode($queries), 'POST'); 

$ bekommt objs json Array von ganzen Folge von dre Abfragen.

Und es spart viel Zeit. Diese 3 Abfragen dauern insgesamt 9 Sekunden. Mit Multiquery dauert es 7 Sekunden. Und mit Batch-Anfrage dauert es 3,6 Sekunden.

FB.api('fql', { q: 'query here' }, function (response) 
{ 
//Logic here 
}; 

Keine alte REST-API erforderlich:

12

den Javascript-SDK verwenden, können Sie dies mit dem folgenden erreichen. Ich sehe viel Verwirrung darin und Facebook hat es nicht sehr deutlich gemacht.

+0

Hallo ROFLwTIME, können Sie die Ressource Ihrer Antwort aussetzen? Ich kann ein solches Beispiel nicht in den Entwicklerhandbüchern von Facebook finden. Es gibt nichts über fql und Javascript sdk geschrieben ... Ich würde gerne offiziellen doc Link bekommen, danke! – arty

+1

@arty, da ist wirklich kein offizielles Dokument, das mir bekannt ist.Ich habe das von den Kommentaren des Facebook-Entwicklers zu einigen ihrer Blogs von Benutzern bekommen, die Fragen über Javascript sdk und FQL stellen. Diese Lösung hat für mich seit über einem Jahr gut funktioniert. Ich weiß, dass du wahrscheinlich nach etwas Offiziellem suchst, damit du nicht etwas entwickelst, das die Linie durchbricht. Soweit ich weiß, gehen das JavaScript SDK und FQL nirgends hin, also denke ich, dass das für jetzt in Ordnung sein wird, aber es gibt leider keine Garantien. – ROFLwTIME

+1

ROFLwTIME, danke für Ihren Input und Erfahrungsaustausch. Ihre Antwort hat mir sehr geholfen, als ich sie gefunden habe. schade ist, dass facebook nicht mit ihrer dokumentation übereinstimmt ... man kann dasselbe auf 100 verschiedene weise implementieren, entsprechend ihren beispielen/guides/tutorials ... ich war neu in ihrer api als ich den offiziellen link fragte ... i schon verstanden, dass es zu viel zu erwarten war) Facebook-Jungs, bitte mehr Anstrengungen, um eine strenge Dokumentation zu halten, sind Sie nicht su-Unternehmen mehr ... – arty

0

FQL with PHP Hier zeige ich, wie man FQL benutzt. Es ist sehr einfach, wenn Sie sich die aktuelle facebook API-Dokumentation genau ansehen. Manchmal ist es besser, keine Artikel über Facebook API Ausgaben zu lesen und direkt auf die Dokumentation zu schauen.