作为“普通的Facebook用户”,我可以访问我的朋友的朋友。但为什么我需要一个“访问令牌”才能通过图形API获取相同的信息?

时间:2014-01-14 18:48:42

标签: facebook facebook-graph-api

不要认为是开发者。我是Facebook“普通用户”,我已经登录了。然后我访问朋友的'X'个人资料。作为朋友,我可以通过这个网址看到朋友X的所有朋友:

https://www.facebook.com/friendx/friends

很好......我可以关闭浏览器,当我再次打开它时,我可以访问相同的网址并查看我朋友的朋友。这很好,因为有一个cookie告诉服务器我是谁。

但是现在,我仍然登录,我想通过图形api请求检索朋友X的所有朋友,所以我访问这个网址:

    https://graph.facebook.com/friendx/friends

根据文档,错误是:

  

请求此资源需要访问令牌。

我无法理解为什么facebook需要访问令牌。我已经登录了这两种情况。当我尝试通过图形API请求访问相同的信息时,在第二种情况下,该cookie是无用的 我的意思是:我不想解析一个完整的HTML页面,知道谁是我朋友的朋友。解析json很容易。

2 个答案:

答案 0 :(得分:2)

Facebook API要求用户进行身份验证以发出GET请求,因此您需要一个access_token表示用户已授予您访问其朋友列表的权限。

您无法从Cookie中获取access_token,因为必须在用户批准您的应用后通过API生成。

如果您想测试图API,请考虑使用Graph API Explorer生成访问令牌并生成请求,但不应将其用作答案的解决方案。

考虑阅读the facebook documentation on access_tokens以进一步了解facebook API和身份验证的工作原理。

答案 1 :(得分:0)

facebook GraphAPI不允许我们收集属于其他人的数据。正如您所说,您可以访问该朋友的朋友,但当时您并未收集供个人使用的数据,因此这是允许的。该数据是公开的,因此您可以访问,但我当然怀疑它们是否允许我们通过GraphAPI或任何其他API访问该数据。删除Facebook数据也不符合Facebook政策。