我试图通过对我的网络服务的AJAX调用来吸引用户的Facebook墙/馈送。实际上,webservice本身只是缓存了之前的请求,因此每当有人想要查看帖子列表时我都不必访问Facebook(我将它们放在30分钟的缓存ATM上)。只要我拉动他们的" Feed"通过以下网址:
https://graph.facebook.com/v2.0/{0}/feed
其中{0}是用户的ID。但是,当我只是想要请求用户的状态时,为了避免墙上出现的所有其他垃圾
https://graph.facebook.com/v2.0/{0}/statuses
我收到400请求错误。我钻得更深了,这是我收到的实际回应:
{
"error": {
"message": "(#100) Requires user session",
"type": "OAuthException",
"code": 100
}
}
经过一段谷歌搜索后,我相信我已经将问题追溯到我要求APP访问令牌而不是USER访问令牌的事实。目前我的请求字符串格式如下:
https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type=client_credentials
我一直在寻找高低,但我还没有找到正确的格式来请求特定用户的访问令牌。例如,如果我想提取https://www.facebook.com/DrPepper等公开个人资料的状态列表,我将如何获得该状态?
答案 0 :(得分:1)
您需要通过oAuth Dialog授权用户(或您自己),这将返回code
(随机字符串),该代码可以一次性访问/oauth/access_token
个端点以返回{ {1}}
access_token
发送/oauth/access_token?client_id={app_id}&client_secret={app_secret}&code={code}
(它必须与您的应用信息中心中的网站网址相匹配)参数将生成60天redirect_uri
,显然您需要此
您可以将response_type更改为access_token
而不是token
,这样您就不必请求code
oAuth Dialog - Parameters
坚持/oauth/access_token
并使用应用{ID}/feed
,因为它永不过期,
access_token
并使用PHP或您正在使用的任何内容来检查/{ID}/feed?fields=message,type
字段