【问题标题】:Facebook Workplace Compliance Integration - Error code 960Facebook Workplace 合规性集成 - 错误代码 960
【发布时间】:2018-04-13 18:30:19
【问题描述】:

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

{
  "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

【问题讨论】:

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


    【解决方案1】:

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

    我无法回答 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
    ]
    

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

    【讨论】:

      猜你喜欢
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2014-06-02
      • 2014-10-09
      • 2012-06-15
      • 2022-06-22
      • 1970-01-01
      相关资源
      最近更新 更多