【问题标题】:Facebook Messenger Platform - Webhook SubscriptionFacebook Messenger 平台 - Webhook 订阅
【发布时间】:2016-04-27 09:34:52
【问题描述】:

我已按照步骤设置 Facebook Messenger 平台。验证 GET 网络挂钩请求和订阅一样完美运行,但是当我提交聊天时,我不断收到以下开发者警报:

嗨,诺拉, 我们注意到您对回调 URL https://{domain}/v1/webhook 的 Webhook 订阅至少有 16 分钟没有接受更新。请验证您的回调服务器是否正常运行,以便您可以继续接收更新。如果您需要更新回调 URL,请参阅https://developers.facebook.com/docs/messenger-platform/webhook-reference#webhook_setup

如果您的回调 URL 连续 8 小时无法接受更新,我们将禁用您的订阅。要重新激活订阅,请使用相同的参数发出 POST 请求,它将被重新激活。

我的发帖请求通过 POSTMAN 进行。

请有人帮助我!这让我发疯了!

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    您的服务器上是否有该帖子请求的日志?

    Facebook 要求您为发布请求返回状态代码 200,以便他们知道您已成功收到它。如果他们没有,他们会再试一次,如果几次后仍然失败,他们会给你这个警报。 也许 facebook 使用了与 postman 不同的内容类型或消息内容。

    您的服务器日志应该可以让您对此有更多的了解。

    【讨论】:

    • 发帖的时间或方式是什么?它们是实际订阅的事件,例如收到的消息吗?或者他们是 Facebook 定期执行的计划任务来检查我的回调是否存在?
    • 只有一个初始验证来检查您的服务器是否处于活动状态。之后,它是在订阅页面收到的每条消息的回调事件。如果他们没有成功,facebook 会被警告(他们会重试几次)..但是没有额外的活动检查帖子请求。
    【解决方案2】:

    根据您为页面订阅的Webhook events,将会有这些事件的回调,以及更多,在您在 Web Hook 设置中指定的 URL 上。

    如果您订阅了message_deliveries 事件,则每次发送消息时,无论是从用户到您的页面还是从您的页面到用户,都会有一个可能更多的带有Message Delivered json 的回调目的。 Webhook Reference 有一个 Message Delivered json 对象的示例,但没有说明或解释这些字段的含义。

    有时我发现有时会收到未记录的Read 回调。未记录的 json 数据如下:

    {"object":"page",
     "entry":[
      {
        "id":"1722858134648129",
        "time":1465407550812,
        "messaging":[
        {
          "sender":{"id":"1131485883560113"},
          "recipient":{"id":"1722858134642218"},
          "timestamp":1465407550868,
          "read":
          {
            "watermark":1465407548057,
            "seq":428
          }}]}]}
    

    基本上,您必须编写回调代码以优雅地处理所有类型的 json 数据,包括未知数,即使您可能还没有准备好进一步处理它们。对于那些你还没有准备好处理或不感兴趣的,不返回任何 Http 状态码 204(实际上每个回调都应该返回 204,因为类型是 void)。

    如果您只处理您感兴趣的那些类型的 json 数据,任何意外的 json 数据很可能会以您的 Web 回调代码编写的任何语言引发异常,并导致向 Facebook 返回 500 服务器错误。正是这个 500 错误导致 Facebook 在您的问题中提出该投诉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多