Ho cercato sul sito Web developers.facebook cercando un modo per utilizzare il nuovo SDK e inviare query FQL ma sembra che tutto sia cambiato e la documentazione sta parlando di tutto tipi di altri modi per richiedere me
o friends
ma non informazioni specifiche come ad esempio gli amici che usano la mia app o no?Come inviare una query FQL con il nuovo SDK Android
così ho scritto un bel interrogazione FQL
select uid, name, pic_square, is_app_user from user where uid in (select uid2 from friend where uid1 = me())
ed ora, tutto quello che devo fare è eseguire esso.
Poiché le uniche richieste che sembrano buone per la restituzione di un elenco di amici sono Request.executeMyFriendsRequestAsync
e Request.newMyFriendsRequest
, ho pensato che fossero miei amici, ma entrambi non consentono la messa a punto di una query FQL.
Come posso inviare una query e recuperare un elenco di amici o almeno uno JSONArray
?
il tutorial Hackbook - Query FQL utilizza la vecchia versione dell'SDK e non so cosa fare.
UPDATE:
Ho aggiunto queste righe di codice pensando che mi permette di creare questa query:
public void onCreate(Bundle savedInstanceState) {
// SOME CODE
this.openSession();
}
protected void onSessionStateChange(SessionState state, Exception exception) {
if (state.isOpened()) {
Session activeSession = getSession().getActiveSession();
facebook.setAccessToken(activeSession.getAccessToken());
facebook.setAccessExpires(activeSession.getExpirationDate().getTime());
Request req = Request.newMyFriendsRequest(activeSession, new GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users, Response response) {
System.out.println(response.toString());
}
});
Bundle params = new Bundle();
params.putString("method", "fql.query");
params.putString("query", "select uid, name, pic_square, is_app_user " + "from user where uid in "
+ "(select uid2 from friend where uid1 = me())");
req.setParameters(params);
Request.executeBatchAsync(req);
}
}
ho fatto questo, pensando che permetterà di modificare la richiesta e aggiungere le informazioni Voglio ma ho ricevuto questo errore:
10-31 09:36:31.647: E/AndroidRuntime(15986): java.lang.NullPointerException
10-31 09:36:31.647: E/AndroidRuntime(15986): at com.sample.facebook.to.db.MainActivity$1.onCompleted(MainActivity.java:62)
10-31 09:36:31.647: E/AndroidRuntime(15986): at com.facebook.Request$2.onCompleted(Request.java:269)
10-31 09:36:31.647: E/AndroidRuntime(15986): at com.facebook.Request$4.run(Request.java:1197)
10-31 09:36:31.647: E/AndroidRuntime(15986): at android.os.Handler.handleCallback(Handler.java:587)
10-31 09:36:31.647: E/AndroidRuntime(15986): at android.os.Handler.dispatchMessage(Handler.java:92)
10-31 09:36:31.647: E/AndroidRuntime(15986): at android.os.Looper.loop(Looper.java:130)
10-31 09:36:31.647: E/AndroidRuntime(15986): at android.app.ActivityThread.main(ActivityThread.java:3691)
10-31 09:36:31.647: E/AndroidRuntime(15986): at java.lang.reflect.Method.invokeNative(Native Method)
10-31 09:36:31.647: E/AndroidRuntime(15986): at java.lang.reflect.Method.invoke(Method.java:507)
10-31 09:36:31.647: E/AndroidRuntime(15986): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
10-31 09:36:31.647: E/AndroidRuntime(15986): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
10-31 09:36:31.647: E/AndroidRuntime(15986): at dalvik.system.NativeStart.main(Native Method)
grazie mille! Non stavo proprio ottenendo come usare il nuovo formato di 'Graph-API' con questo SDK ... – thepoosh
ha funzionato come per magia! Grazie! – TharakaNirmana
Funziona davvero, ma ho una domanda, perché non restituisce tutti i miei amici? solo alcune. – JayR