2012-03-19 15 views
18

Chciałbym wykonać FQL, aby pobrać wszystkich przyjaciół użytkownika aplikacji.Wykonaj kwerendę FQL z Facebookiem C# sdk v6.0.10

W poprzednich wersjach SDK można to zrobić z:

var client = new FacebookWebClient(); 
client.Query(String.Format("SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = {0})", me.id)); 

ale z wersji 6.0.10 nie mam pojęcia w jaki sposób mogę zrobić to samo.

Wszelkie pomysły?

Odpowiedz

17

można rzeczywiście dostać to samo z Graph API połączenia:

var client = new FacebookClient(); 
var query = string.Format("SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = {0})", me.id); 

dynamic parameters = new ExpandoObject(); 
parameters.q = query; 
dynamic results = client.Get("/fql", parameters); 
+0

Dzięki! Czy istnieje sposób na uzyskanie identyfikatora facebook użytkownika jak wcześniej: FacebookWebContext.Current.UserID? – Diego

+1

Właściwie, gdzie mogę znaleźć dokumentację? ponieważ wszystko jest teraz inne, a oficjalna strona nie zawiera pełnej dokumentacji :( – Diego

+1

Wydaje się, że nowe miejsce dla SDK (http://csharpsdk.org/) nie ma pełnej dokumentacji, tylko podstawy. Nowa dokumentacja jest po prostu czymś w toku ... Teraz możesz zagłębić się w kod, aby uzyskać więcej informacji i zbudować plik pomocy (jest dokumentacja "plik projektu" (dla [Sandcastle Help File Builder] (http: // shfb .codeplex.com /)) znajduje się w folderze 'Build' źródeł SDK –

25

FQL

var fb = new FacebookClient("access_token"); 
dynamic result = fb.Get("fql", 
    new { q = "SELECT uid FROM user WHERE uid=me()" }); 

FQL Wielu Zapytanie

var fb = new FacebookClient("access_token"); 
dynamic result = fb.Get("fql", new 
    { 
     q = new[] 
       { 
        "SELECT uid from user where uid=me()", 
        "SELECT name FROM user WHERE uid=me()" 
       } 
    }); 

FQL nazwie multi-zapytania

var fb = new FacebookClient("access_token"); 
dynamic result = fb.Get("fql", 
    new 
     { 
      q = new 
      { 
       id = "SELECT uid from user where uid=me()", 
       name = "SELECT name FROM user WHERE uid " + 
       "IN (SELECT uid FROM #id)", 
      } 
     });