2012-03-19 14 views
18

Vorrei eseguire un FQL per recuperare tutti gli amici dell'utente dell'app.Esegui query FQL con facebook C# sdk v6.0.10

Nelle versioni precedenti del SDK potrebbe essere fatto con:

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)); 

ma con la versione 6.0.10 non ho idea di come posso fare lo stesso.

Qualche idea?

risposta

17

Si può effettivamente ottenere lo stesso con Graph API chiamata:

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

Grazie! C'è un modo per ottenere l'ID utente di Facebook come prima: FacebookWebContext.Current.UserID? – Diego

+1

In realtà, dove posso trovare della documentazione? perché tutto è diverso ora, e il sito ufficiale non fornisce la documentazione completa :( – Diego

+1

Sembra che il nuovo posto per l'SDK (http://csharpsdk.org/) non abbia una documentazione completa, solo le basi. Nuova documentazione è solo qualcosa in corso ... Per ora puoi scavare nel codice per ottenere maggiori informazioni e creare un file di aiuto (c'è una documentazione "file di progetto" (per [Sandcastle Help File Builder] (http: // shfb .codeplex.com /)) situato nella cartella 'Build' di sorgenti SDK. –

25

FQL

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

FQL Multi Query

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 chiamato Multi-query

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)", 
      } 
     });