【问题标题】:Android Getting Facebook friend list with SDK 3.0Android 使用 SDK 3.0 获取 Facebook 好友列表
【发布时间】:2014-06-07 16:26:19
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 您和您的妻子是否都授予了 user_friends 对应用的权限?
  • 我想是的,我没有在我的 FB 帐户上看到我的应用程序,但是当我被要求授予权限时,我做到了
  • 调试访问令牌,看看他们是否有权限
  • 不好意思问了,怎么办?
  • 当我检查 session.getPermission() 时,我看到它的大小是 0,虽然我肯定批准了friend_list...

标签: android facebook facebook-graph-api


【解决方案1】:

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

Android 应用程序:
获得许可(在您创建 fb 应用的 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()

【讨论】:

  • 如果我的回答对您没有帮助,请取消标记答案。
  • 什么是DATA_NODE、ID_NOTE、NAME_NOTE?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多