Facebook Graph API 403 禁止错误
Posted
技术标签:
【中文标题】Facebook Graph API 403 禁止错误【英文标题】:Facebook Graph API 403 Forbidden Error 【发布时间】:2013-03-15 00:45:23 【问题描述】:这类似于这里的一些问题,但似乎没有一个问题能产生对我有帮助的答案。我正在从 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) 应用请求限制 达到","type":"OAuthException","code":4
考虑到我只使用了几次 api,我这辈子都看不到如何达到极限。
【问题讨论】:
查看 HTTP 403 的内容是否有与之相关的实际 API 错误。 谢谢 phwd。当它再次开始中断时,我会看看是否有更多响应。现在它工作正常,但从现在起 2 小时后可能就不行了。 @phwd 这在响应中... '"error":"message":"(#4) Application request limit reached","type":"OAuthException","code ":4' 为了好玩:developers.facebook.com/bugs/257200164380833 我也看到了,大卫。我认为这要么是一个错误,要么是物理服务器上的另一个站点正在敲击 api,导致它被 IP 阻止。我将尝试使用身份验证令牌,看看是否能解决问题。 【参考方案1】:如果您向不需要 access_token 的 FB 图 API 端点之一发出 GET 请求,这并不意味着您不应将其包含在请求参数中。如果您按照 FB 文档中所说的不包含 access_token 进行操作,那么在 FB 服务器端它会注册到您的服务器机器中。因此,可以很容易地达到限制(无论数量是多少)。但是,如果您将用户访问令牌放入请求中(&access_token=XXXXXX),然后请求将注册到特定用户中,因此几乎不会达到限制。您可以使用一个简单的脚本来测试它,该脚本在有和没有用户 access_token 的情况下发出 1000 个请求。
注意,FB 应用程序访问令牌是不够的,因为您将面临同样的问题:请求将被注册到应用程序 access_token 中,这种情况类似于在没有 access_token 的情况下发出请求。
【讨论】:
好像已经帮我修好了以上是关于Facebook Graph API 403 禁止错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 YouTube 分析 API 检索指标时禁止出现 403
Ropsten 网络中禁止 Etherscan API 请求 403
启用 API 身份验证时,Apache 气流 REST API 调用失败并出现 403 禁止