Facebook Graph API 403 Forbidden Error

时间:2013-03-25 13:42:42

标签: c# facebook-graph-api http-status-code-403

这与此处的一些问题相似,但似乎没有一个问题产生了对我有帮助的答案。我正在调用c#/ .Net应用程序中的图形api来获取特定专辑的照片,我收到403错误......有时候。

我从未在开发环境中收到错误,仅在生产环境中收到错误。我也将响应缓存了一个小时,因此应用程序在给定时间内达到API的最多时间约为20次,而不是一次性完成。我目前正在吞下异常,当它出错并且根本没有显示图像时,但这不是一个长期的解决方案。

var request = WebRequest.Create("https://graph.facebook.com/ALBUM_ID/photos");
var stream = request.GetResponse().GetResponseStream();

这种情况刚刚开始发生在一个月前,但我没有在破坏性更改列表中看到任何暗示此行为的内容。任何见解都将不胜感激。

更新

这被隐藏在响应流中。

  

{“error”:{“message”:“(#4)申请请求限制   达到”, “类型”: “OAuthException”, “代码”:4}}

考虑到我只打了几次api,我没有看到我的生活如何达到极限。

1 个答案:

答案 0 :(得分:2)

如果您对其中一个不需要access_token的FB图形API端点发出GET请求,这并不意味着您不应将其包含在请求参数中。如果你这样做,FB文档说不包括access_token,那么在FB服务器端它会注册到你的服务器机器。因此,可以非常容易地达到限制(无论它究竟是多少)。但是,如果您将用户访问令牌放入请求(& access_token = XXXXXX),则请求注册到特定用户,因此几乎不会达到限制。您可以使用一个简单的脚本来测试它,该脚本使用和不使用用户access_token生成1000个请求。

注意,FB app访问令牌是不够的,因为您将面临同样的问题:请求将被注册到app access_token,这种情况类似于没有access_token的请求。