通过 Webhooks,您可以接收 Meta 社交关系图谱中特定对象变更的实时 HTTP 通知。例如,当您的应用用户更改邮箱,或在您的 Facebook 公共主页上评论时,我们就可以向您发送通知。如此一来,您就无须查询图谱 API 以了解对象是否已发生变更,同时帮助您避免达到流量限制。
支付专用 Webhooks 与 Messenger 专用 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 发送 Webhooks,因此您的服务器必须能够接收和处理 HTTPS 请求,并且必须安装有效的 TLS/SSL 证书。不支持自签名证书。
在发布应用前,通常需要对其进行应用审核。审核期间,应用可以请求批准获得特定权限;这些权限用于控制在使用图谱 API 时,应用可访问哪些类型的数据。
虽然 Webhooks 产品无需进行应用审核,但仍需获取这些权限。这表示即使设置了 Webhooks,并订阅了对象类型的特定字段,但是除非满足以下条件,否则不会收到任何有关该类对象的变更通知:
如果应用处于开发模式,将只能收到通过应用面板发起的测试通知或拥有应用身份的用户发起的通知。
请注意,Messenger Webhooks 事件的开发模式行为并不相同。详情请参阅 Messenger 专用 Webhooks。