我正在使用Facebook C#API创建一个应用程序。
我想阅读data on this wall,但是当我调用API并基本上点击此网址:https://graph.facebook.com/123176767150时,我收到此错误:
{
"error": {
"type": "OAuthException",
"message": "An access token is required to request this resource."
}
}
为什么我需要身份验证来获取我可以看到的公共数据而无需登录Facebook帐户?
答案 0 :(得分:10)
因为Facebook不介意您作为用户看到此信息但不希望应用程序能够收集数据。显然,使用图形api将每个人的名字从他们的帖子中删除到组墙(假设)比你手动完成它要快得多。没有access_token的唯一公开信息是基本用户信息(这仅适用于用户而不是任何其他对象)。为了达到你想要的效果,你必须获得一个access_token。
这与用户在登录Facebook时可以看到任何人的朋友这一事实相同,但作为一个应用程序,您只能看到授权用户的朋友。
但是,您可以通过以下方法进行身份验证来验证您的应用程序,并能够访问非用户特定的私人信息:
发出GET请求:
https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET
Facebook回归:
access_token=SOME_TOKEN
使用此令牌作为访问令牌,它应该允许您访问该组。我已经用我的应用程序对此进行了测试,并且可以确认它有效。
您可以通过请求请求隔离墙信息:
https://graph.facebook.com/123176767150/feed?access_token=SOME_TOKEN
请参阅Authenticating as an Application
部分下的here
答案 1 :(得分:0)
以便FB知道谁在请求数据。 FB需要知道访问任何类型数据的代理。