Meta Webhooks

通过 Webhooks,您可以接收 Meta 社交关系图谱中特定对象变更的实时 HTTP 通知。例如,当您的应用用户更改邮箱,或在您的 Facebook 公共主页上评论时,我们就可以向您发送通知。如此一来,您就无须查询图谱 API 以了解对象是否已发生变更,同时帮助您避免达到流量限制

支付专用 WebhooksMessenger 专用 Webhooks 的配置步骤有些许不同。如要设置其中一种专用 Webhooks,请参阅各自的设置说明文档。

对象、字段与值

Meta 社交关系图谱中有多种类型的对象(例如用户对象和公共主页对象),因此在配置 Webhooks 时,您都需要先选择对象类型。鉴于不同对象的字段各不相同,您之后还需要订阅该对象类型的特定字段。当您订阅的对象字段值发生变更时,我们会向您发送通知。

所发送通知的形式为 HTTP POST 请求,而且包含用于描述变更的 JSON 负载。例如,假设您设置 User Webhooks,并且订阅 Photos 字段。如果您应用的用户上传了一张照片,我们将向您发送如下所示通知:

通知示例

{
  "entry": [
    {
      "time": 1520383571,
      "changes": [
        {
          "field": "photos",
          "value": {
            "verb": "update",
            "object_id": "10211885744794461"
          }
        }
      ],
      "id": "10210299214172187",
      "uid": "10210299214172187"
    }
  ],
  "object": "user"
}

HTTPS 服务器

我们将使用 HTTPS 发送 Webhooks,因此您的服务器必须能够接收和处理 HTTPS 请求,并且必须安装有效的 TLS/SSL 证书。不支持自签名证书。

应用审核

Webhooks 无需进行应用审核。但是,在您的应用转为已发布模式后,为接收关于对象变更的 Webhooks 通知,应用必须获得访问这些对象的相关权限授权。请参阅下文的权限部分。

权限

在发布应用前,通常需要对其进行应用审核。审核期间,应用可以请求批准获得特定权限;这些权限用于控制在使用图谱 API 时,应用可访问哪些类型的数据。

虽然 Webhooks 产品无需进行应用审核,但仍需获取这些权限。这表示即使设置了 Webhooks,并订阅了对象类型的特定字段,但是除非满足以下条件,否则不会收到任何有关该类对象的变更通知:

  • 您的应用已获批使用有关该类型数据的相关权限;并且
  • 拥有数据的对象已向您的应用授予该类数据的访问权限(例如,用户允许您的应用访问其动态)

开发模式

如果应用处于开发模式,将只能收到通过应用面板发起的测试通知或拥有应用身份的用户发起的通知。

请注意,Messenger Webhooks 事件的开发模式行为并不相同。详情请参阅 Messenger 专用 Webhooks

设置

如要使用 Webhooks,需在安全的 (HTTPS) 服务器中设置端点,然后在应用面板中添加和配置 Webhooks 产品。下述链接的余下文档将说明如何完成这些步骤。

准备好了吗?让我们开始吧!

详细了解

  • 了解在使用 Messenger 移交协议将对话从一个应用传递到另一个应用时如何获取通知。