我们不总是需要获得'read_stream'权限吗?

时间:2011-11-21 04:25:35

标签: facebook facebook-graph-api permissions

使用我的应用程序或使用Graph API Explorer时,我了解到我可以访问有关任何人的一些信息。举个例子,

 https://graph.facebook.com/btaylor.

这包括需要'feed'权限的主题'posts''read_stream'。我可以获取信息,即使他没有将此类权限扩展到我所知道的应用程序。我的问题是,'read_stream'主题是否具有不需要权限的无证特殊状态?

1 个答案:

答案 0 :(得分:2)

我将分别回答你的两个问题。

首先,read_stream权限不一致。您将需要一个访问令牌来读取某人的流,没有例外。您观察到的不一致可能在于URL中存在访问令牌。例如

https://graph.facebook.com/btaylor不应为您提供任何基本详细信息,因为该网址不包含访问令牌。

https://graph.facebook.com/btaylor?access_token=AAAAAAITEghMBAMFnukHXAQgLGCfnptZAkF41gIDFt7ycPYkRpGic5MoHkpB6CZCaT21PPyQDOjYo7Tn4mGFH7CyNW06kgrZAWbeTVt9YwZDZD会向您显示其他详细信息,因为它确实包含访问令牌。但是,请注意访问令牌将在某个时刻到期,因此上述链接可能无效。可在此处找到此链接以及正确的访问令牌:http://developers.facebook.com/docs/reference/api/#auth

在查看btaylor的帖子时,https://graph.facebook.com/btaylor/posts会告诉您需要访问令牌,但https://graph.facebook.com/btaylor/posts?access_token=AAAAAAITEghMBAMFnukHXAQgLGCfnptZAkF41gIDFt7ycPYkRpGic5MoHkpB6CZCaT21PPyQDOjYo7Tn4mGFH7CyNW06kgrZAWbeTVt9YwZDZD会向您显示所有帖子。

图谱API资源管理器可能会在您不知情的情况下缓存访问令牌并将其与您的请求一起发送,但对我来说似乎并非如此。您确定“访问令牌”字段中没有访问令牌吗?

其次,您可以在某人的Facebook个人资料上公开查看数据的原因是因为他们的Facebook隐私设置。 Facebook隐私设置根本不与通过Graph API请求的权限相关联。您可以在Facebook个人资料中公开所有内容,但不会通过API提供任何内容(除了基本信息)。用户在使用API​​时必须明确允许您的应用程序访问其信息。至于“为什么”就是这种情况,可能是由于隐私和垃圾邮件。如果世界上的每个人都拥有API访问一个人公开提供的所有信息,那么可能会有更多的垃圾邮件,只允许在facebook.com上查看这些信息。