【问题标题】:Android FaceBook newMyFriendsRequest Returns EMPTY Friends ListAndroid FaceBook newMyFriendsRequest 返回 EMPTY 好友列表
【发布时间】:2014-06-04 17:49:47
【问题描述】:

我正在使用 Parse 和 Facebook 开发我的第一个 Android 应用程序,所以我对它很陌生。

我正在尝试使用 Request.newMyFriendsRequest() 检索用户的好友列表,但在使用真实用户进行测试时它给了我一个空列表。

据我所知,对于Graph API v2.0,此请求只会返回该人也使用该应用程序的朋友集。

为此,我创建了一个虚假的 Fb 个人资料,我用我的真实个人资料在 Facebook 上与他成为了朋友,安装了我的应用程序,在 ParseUser 注册并使用 ParseFacebookUtils.link 与 Facebook 链接,但请求返回朋友的空列表

我在 Facebook 的应用仪表板中创建了几个测试用户,并模拟了他们之间的几个友谊。我在我的应用程序中做了同样的过程(注册parseUser,链接ParseFacebookUtils.link),其中两个,列表users.size()按预期返回2个朋友。

为什么它不适用于我的真实个人资料和伪造的个人资料(就像任何其他真实个人资料一样)??

这就是我链接个人资料的方式:

List<String> permissions = new ArrayList<String>();
permissions.add("public_profile");
permissions.add("user_friends");

ParseFacebookUtils.link(currentUser, permissions, MainActivity.this, new SaveCallback() {
     @Override
     public void done(ParseException ex) {
          if (ParseFacebookUtils.isLinked(currentUser)) {
             Log.d(TAG, "Woohoo, user logged in with Facebook!");
             Toast.makeText(getApplicationContext(), "Facebook succesfully linked", Toast.LENGTH_LONG).show();
          }
          if (ex != null) {
             Log.d (TAG, ex.getLocalizedMessage() + "\n + Exception Code: " + ex.getCode());
          }
     });

这就是我请求朋友的方式:

Request.newMyFriendsRequest(ParseFacebookUtils.getSession(), new GraphUserListCallback() {
    @Override
    public void onCompleted(List<GraphUser> users, Response response) {
         Log.d(TAG, "Request Completed!! " + response.toString() + "----" + users.size());
         if (users != null) {
             List<String> friendsList = new ArrayList<String>();
             for (GraphUser user : users) {
                friendsList.add(user.getId());
             }
         }
    }
}).executeAsync();.

但我不知道如何获取真实用户的好友列表。使用我的个人资料,它应该返回 1 个也使用正在开发的应用程序注册的朋友...

【问题讨论】:

  • 两个用户都获得了 user_friends 对应用的权限吗?
  • 就是这样!我想在我在登录中添加对 user_friends 的权限请求之前,我与 FB 链接的那些真实用户。我从 Facebook 中取消了解析配置文件的链接,注销了用户,但是每当我再次尝试登录和链接时,它都不会询问我的权限,而是尝试打开最后一个会话,但它响应了 过期或无效令牌。看来 Parse 实际上并没有将用户与 facebook 取消链接。谢谢!
  • 同样的问题...如何解决?
  • 当时我无法修复它。我正在启动应用程序,所以我在 Parse 中创建了一个新应用程序,并从一开始就使用 user_friends 权限重新开始...... :(

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


【解决方案1】:

由于以下原因,我得到了一个空数组:

- This will only return any friends who have used (via Facebook Login) the app making the request.

请注意!

【讨论】:

  • 是的,没错。但在这种情况下,问题是刷新应用程序的 facebook user_friends 权限时出现问题。我第一次使用该用户登录时没有设置该权限,当我这样做时,由于某种原因没有授予权限,我必须刷新这些权限才能让他们重新开始工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多