9

我想通过 API 调用结交朋友的朋友,当我尝试这样做时,出现以下异常,

    {
   "error": {
      "type": "OAuthException",
      "message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"
   }
}

我试图访问的 URL 是,

https://graph.facebook.com/friend_id/friends?access_token=access_token

我正在获得扩展权限,如下所示,

<fb:login-button perms="user_likes,friends_likes"></fb:login-button>

任何人都可以让我知道这里出了什么问题吗?或者这是否意味着我永远无法访问朋友的朋友?

4

6 回答 6

6

目前,没有允许您查看用户的朋友的朋友的扩展权限。“*_likes”权限只显示用户喜欢的 Facebook 页面。

您可能可以逐个迭代地获取和缓存每个用户朋友的朋友,但是如果没有每个朋友的访问令牌,您将只能获取公共数据。

于 2010-09-29T17:35:36.090 回答
3

我有朋友的朋友(有限)。我有同样的问题。虽然回答问题已经很晚了,但它会帮助别人。这就是为什么要回答这个问题。

我们可以得到那些是应用程序用户的朋友的朋友。$fb_id= 需要朋友的朋友的用户 ID。

$query="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $fb_id ) and is_app_user=1)"; $user_info=$facebook->api(array('method'=>'fql.query', 'query'=>$query));

@奥利:

您正在通过应用程序获取您朋友的朋友。因此,您需要得到您想要的朋友的许可。即您的朋友应该使用该应用程序并在允许访问信息的同时接受这些许可。否则你将无法成为你朋友的朋友。我已经测试了这个查询。它工作成功。

"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"

这条消息解释得很好。仔细阅读。

希望您了解解决方案标准。

于 2012-02-25T12:16:13.270 回答
1

不能交朋友的朋友,出于隐私考虑,不允许这样做。

我们之前做过的一个解决方法是将所有用户朋友保存到我们自己的数据库中。这样我们就可以交叉引用所有不同用户的好友列表,并至少获得使用过我们制作的应用程序的好友的好友。

重要说明,根据您获得的用户数量,这样的表格会很快变得相当可取。

指望每个用户平均有大约 250-300 个朋友,所以如果您选择这样的解决方案,请确保针对它优化您的数据库,然后它应该工作得很好。

于 2013-02-25T12:43:23.100 回答
0

遇到同样的问题,必须使用旧的 REST API 才能获得至少共同的朋友,请参阅 http://developers.facebook.com/docs/reference/rest/friends.getMutualFriends/

于 2012-01-02T18:07:59.317 回答
-1

您可以通过对我/朋友的 Graph API 调用来获取当前用户的朋友。您将需要任何有效的 access_token,不需要特殊的扩展权限,只需基本权限即可。有一个警告,该用户必须允许您查看他们的朋友列表。因此,在隐私设置 > 在 Facebook 上连接中有一个“查看您的朋友列表”设置。如果用户选择了自定义设置并选择说“只有我”,您将收到此错误。

同样,如果当前用户允许其他人查看他们的朋友列表,但其中一位朋友出于隐私考虑将其关闭,那么您将无法看到任何数据并会收到该错误。

我能够验证我所描述的场景。

于 2011-07-28T05:40:56.693 回答
-3

不幸的是,由于我没有使用 FB API 的经验,因此我无法具体询问您的答案。但是,我相信 FB 允许用户隐藏他们的朋友是谁。如果他们有这个集合,那么您可能根本无法访问他们的朋友。我会尝试修改您的代码以首先检查给定用户的权限是什么,然后只有在您有权访问他们的朋友列表时才访问它。不过,这里有点猜测。

于 2010-09-29T03:58:51.913 回答