Android使用SDK 3.0获取Facebook好友列表

时间:2014-06-07 16:26:19

标签: android facebook facebook-graph-api

我正在努力使用Facebook SDK 3.0获取我所有的Facebook好友列表 我不想使用FriendPickerFragment,因为我不想显示选择器,我想创建自己的朋友列表(显示名称和图像)。

根据这篇文章Facebook friends list returns empty,这可能只有在朋友批准你的应用程序时才有可能,但即使我和我妻子的帐户和我的帐户一起尝试过,我仍然无法获得朋友列表。

任何帮助都将受到高度赞赏,我花了很多时间在这上面并达成死锁。

谢谢!

1 个答案:

答案 0 :(得分:1)

前提条件:
1.在facebook上创建一个应用程序 2.将android app的哈希码添加到facebook app。

Android应用:
获得许可(在您创建fb app的fb帐户上)

authButton.setReadPermissions(Arrays.asList("basic_info, user_friends"));

authButton是com.facebook.widget.LoginButton(您可以参考示例应用以了解登录按钮的工作原理)

获取好友列表的方法:

   Request r = new Request(session, "/me/friends", null,HttpMethod.GET, new Request.Callback() {
                        @Override
                        public void onCompleted(Response response) {
                            try {
                                GraphObject graphObj = response.getGraphObject();
                                if(graphObj != null){
                                    ArrayList<FBFriend> friendArrayList = new ArrayList<FBFriend>();
                                    JSONObject jsonObj = graphObj.getInnerJSONObject();
                                    JSONArray array = jsonObj.getJSONArray(DATA_NODE);
                                    for(int i = 0; i < array.length(); i++){
                                        JSONObject Jobj = (JSONObject)array.get(i);
                                        String id = Jobj.getString(FBFriend.ID_NOTE);
                                        String name = Jobj.getString(FBFriend.NAME_NOTE);
                                        FBFriend f = new FBFriend(id, name);
                                        friendArrayList.add(f);
                                    }
                                }
                            }
                        }
                    });
r.executeAsync()