2010-04-27 17 views
33

Szukam bez żadnego sukcesu sposób na wykonanie kwerendy FQL (język zapytań facebook) z nowym API Open Graph.Jak mogę wykonać kwerendę FQL z Facebook Graph API

Czy ktoś wie, jak mogę to zrobić?

znaleźć odpowiedź tutaj z tego doskonały przykład: http://code.google.com/p/facebook-cpp-graph-api/

+0

Czy czytasz dokumentację interfejsu API Graph? http://developers.facebook.com/docs/api – inkedmn

+2

Na pewno zrobiłem i nie rozumiem, jak to zrobić – user63898

+3

Korzystanie z API wykresu nie jest możliwe. Jednak interfejs API FQL jest nadal dostępny, o czym wspomniało wiele osób. – Yuliy

Odpowiedz

17

PHP rozwiązanie:

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

czy FQL jest obsługiwany przez nowy interfejs API Graph? Przez Support, nie mam na myśli przestarzałego wsparcia. – BlueSilver

+0

to jedyna metoda, jaką udało mi się znaleźć do tej pory –

+0

To działa dla mnie! :) – happyhardik

31

Oto przykład jak zrobić kwerendę FQL użyciu Graph API i JavaScript

FB.api(
     { 
      method: 'fql.query', 
      query: 'SELECT uid, first_name, last_name FROM user WHERE uid = ' + someUid 
     }, 
     function(data) { 
      // do something with the response 
     } 
); 

Zakłada to, że strona została już skonfigurowana zgodnie z wytycznymi na Facebooku, tak jak tutaj - http://developers.facebook.com/docs/reference/javascript/

+0

@happyhardik Jest to api przykładowy wykres przy użyciu javascript z biblioteką python-sdk na Facebooku. [Dokumenty FB.api] (http://developers.facebook.com/docs/reference/javascript/fb.api/) –

+2

to nie jest Graph API. Tylko warstwa zapytania FQL pod Graph API i REST API. – Raptor

+2

Nie spowoduje to wywołania GraphAPI. FB.api użyte w ten sposób wywoła zdezaktywowane API REST. Istnieje różnica, na przykład, wywołania ETAP aplikacji GraphAPI, dzięki czemu można buforować wyniki wywołania funkcji API na kliencie. –

1

Jest to kolejny sposób na wykonanie wielu zapytań fql w krótkim przedziale.

// $ 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'); 

$ OBJS dostaje json tablicę całego wyniku thre zapytaniami.

To dużo oszczędza czas. Te 3 zapytania pojedynczo zajmują łącznie 9 sekund. W przypadku wielokwirekcji trwa to 7 sekund. A z prośbą wsadową zajmuje to 3,6 sekundy.

12

Używanie JavaScript SDK, można tego dokonać przy użyciu następujących:

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

Nie spuścizna REST API wymagane. Widzę w tym sporo zamieszania i Facebook nie wyjaśnił tego bardzo wyraźnie.

+0

Witaj, ROFLWTIME, czy możesz odsłonić źródło swojej odpowiedzi? Nie mogę znaleźć takiego przykładu na przewodnikach dla programistów na Facebooku. Nie napisano nic o fql i javascript sdk ... chciałbym uzyskać oficjalny link do dokumentu, dziękuję! – arty

+1

@arty, tak naprawdę nie ma oficjalnego dokumentu, który znam.Otrzymałem to od komentarzy dewelopera Facebooka na niektórych blogach od użytkowników zadających pytania o javascript sdk i FQL. To rozwiązanie sprawdziło się dobrze od ponad roku. Wiem, że prawdopodobnie szukasz czegoś oficjalnego, więc nie rozwiniesz czegoś, co zepsułoby się na linii. O ile mi wiadomo, JavaScript SDK i FQL nigdzie się nie wybierają, więc myślę, że na razie będzie dobrze, ale niestety nie ma gwarancji. – ROFLwTIME

+1

ROFLwTIME, dziękuję za wkład i podzielenie się doświadczeniem. Twoja odpowiedź bardzo mi pomogła, kiedy ją znalazłem. szkoda, że ​​Facebook nie jest zgodny z ich dokumentacją ... można wprowadzić to samo na 100 różnych sposobów, zgodnie z ich przykładami/przewodnikami/tutorialami ... byłem nowy w ich api, gdy zapytałem oficjalny link ... już zrozumiałem, że było zbyt wiele do czego można się spodziewać) faceci z Facebooka, proszę włożyć więcej wysiłku w utrzymanie ścisłej dokumentacji, nie jesteś już firmą ... – arty

0

FQL with PHP tutaj pokażę, jak używać FQL. To bardzo proste, jeśli uważnie przyjrzeć się aktualnej dokumentacji api Facebooka. Czasem lepiej nie czytać artykułów o problemach z Facebookiem i patrzeć bezpośrednio na dokumentację.

Powiązane problemy