如何通过Facebook sdk android获取当前正在使用我的应用程序的在线朋友

时间:2014-05-13 08:47:37

标签: android facebook facebook-graph-api android-facebook

我创建了一个具有Facebook登录功能的Android应用程序,我一直试图让我的朋友正在使用我的应用程序。这意味着我想让我的朋友在我的应用程序中当前在线。虽然我的一些朋友在线,但我尝试了多种方式,并且每次都将online_presence称为“离线”。我试过的一些方法是

1. Added permissions (user_onlinepresence, friends_online presence, user_status) in app-appdetails- configure app center permissions. ----didn't work.

2.SELECT uid,name,online_presence FROM user WHERE online_presence IN('active','idle')AND uid IN(SELECT uid2 FROM friend WHERE uid1 = 1234)& access_token = xxxxxxtokenxxxxx& method = GET ---给我空数据(虽然许多使用我的应用程序的朋友都在线。)

我搜索了很多关于这个的信息。但没有得到任何有效的解决方案。我请求大家在这个问题上帮助我,并提供一个对我有用的解决方案。

1 个答案:

答案 0 :(得分:0)

使用新版GraphRequest非常简单,只需添加此方法:

private String[] getUserContacts(){

    new GraphRequest(
            AccessToken.getCurrentAccessToken(),
            "/me/friends",
            null,
            HttpMethod.GET,
            new GraphRequest.Callback() {
                public void onCompleted(GraphResponse response) {
                    try {
                        JSONArray rawContactsData = response.getJSONObject().getJSONArray("data");
                        contacts=new String[rawContactsData.length()];
                        for (int j = 0; j < rawContactsData.length(); j++) {
                            JSONObject item = rawContactsData.getJSONObject(j);
                            contacts[j]=item.getString("id");
                        }
                        Log.d("Contacts","ala"+rawContactsData);
                        getCalendarData();
                    }catch (JSONException e){

                    }
                }
            }
    ).executeAsync();
    return contacts;
}