Facebook Workplace Compliance Integration - 错误代码960

时间:2017-11-01 12:28:09

标签: facebook facebook-graph-api facebook-workplace

我正在使用Python和Facebook Graph API编写合规性集成,以搜索我们的Workplace社区中针对给定关键字的所有用户内容。我之前每次都有一些工作,但最近(过去几天)发送给Facebook的一个请求将返回一个FacebookApiException,错误代码为960,并显示消息“请求已中止。如果依赖请求失败,可能会发生这种情况或整个请求超时。“在成功收到数千个成功请求之后。这不会一直发生,但往往会失败。

{
  "error": {
    "message": "Request aborted. This could happen if a dependent request failed or the entire request timed out.",
    "code": 960,
    "type": "FacebookApiException",
    "fbtrace_id": "B72L8jiCFZy"
  }
}

为简单起见,我没有在我的请求中使用依赖项,所以我只能认为它是超时的。我的问题是 - Facebook Graph API的超时期限是多少?它是否超时是因为我花了太长时间才发送请求,或者是因为Facebook服务器花了太长时间来响应我的请求而超时?有什么办法可以增加超时来停止出现错误信息吗?

TIA

1 个答案:

答案 0 :(得分:0)

这个问题比较老,但是万一其他人正在寻找答案。

我无法回答Facebook Graph Api的超时期限,但是我可以为那些遇到超时错误的人指出解决方法。

Facebook上有关于如何处理调子的文档: https://developers.facebook.com/docs/graph-api/making-multiple-requests/#timeouts

  

如果完成批处理中的所有请求花费的时间太长,则大批或复杂批处理可能会超时。在这种情况下,结果是部分完成的批次。在部分完成的批次中,成功完成的操作的响应将看起来是正常的(请参见前面的示例),而未完成的操作的响应将为空。

     

响应的顺序与请求中操作的顺序相对应,因此开发人员应相应地处理响应,以确定哪些操作成功,哪些应在后续操作中重试。

因此,根据他们的文档,对于超时的批处理请求的响应应类似于以下内容:

[
    { "code": 200,
      "headers": [
          { "name":"Content-Type", 
            "value":"text/javascript; charset=UTF-8"}
       ],
      "body":"{\"id\":\"…\"}"
    },
    null,null,null
]

使用他们的示例,您只需要重新排队批处理请求数组中与空响应相对应的项目即可。