我一直在搜索developers.facebook網站,尋找使用新SDK併發送FQL查詢的方式,但似乎所有內容都已更改,文檔正在討論所有內容其他方式請求me
或friends
但不是具體的信息,如那些朋友使用我的應用程序或不是?如何使用新的Android SDK發送FQL查詢
所以我寫下了一個很好的FQL查詢
select uid, name, pic_square, is_app_user from user where uid in (select uid2 from friend where uid1 = me())
和現在,都是我所要做的就是運行它。
由於回覆朋友列表似乎很好的唯一請求是Request.executeMyFriendsRequestAsync
和Request.newMyFriendsRequest
我假設他們是我的朋友,但都不允許微調FQL查詢。
如何發送查詢並獲取朋友列表或至少一個JSONArray
?
Hackbook - FQL查詢教程使用的是舊版本的SDK,我不知道該怎麼做。
UPDATE:
我添加幾行代碼以爲它會讓我創建這個查詢:
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);
}
}
我這樣做,以爲它會修改該請求,並添加信息我想,但我得到了這個錯誤:
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)
感謝一大堆的基礎! 我只是沒有得到如何使用這個SDK的新的Graph-API格式... – thepoosh
工作就像魔術!謝謝! – TharakaNirmana
這真的很有用,但我有問題,爲什麼它不會返回我所有的朋友?一些。 – JayR