Webhooks 可讓您接收 Meta 社交關係圖中特定物件變更的即時 HTTP 通知。例如,當應用程式的任何用戶變更電子郵件地址,或每當用戶在您的 Facebook 粉絲專頁上留言時,我們就會傳送通知給您。這樣您就不需要透過圖形 API 查詢物件是否有所變動,有助於避免達到速率限制。
付款專用 Webhooks 和 Messenger 專用 Webhooks 的配置步驟稍有不同。如果要為這兩項產品設定 Webhook,請參閱各自文件中的設定指示。
Meta 社交關係圖包含許多類型的物件,例如用戶物件和粉絲專頁物件,因此每當您配置 Webhook 時,都必須先選擇物件類型。由於不同物件有不同的欄位,因此您接著必須針對該物件類型訂閱特定欄位。每當所訂閱之任何物件欄位的值有所變更時,我們就會傳送通知給您。
通知會以 HTTP POST 要求的形式傳送,內含說明變更內容的 JSON 承載。例如,假設您設定 User
Webhook 並訂閱 Photos
欄位。如果應用程式的任一用戶上傳相片,我們就會傳送如下通知給您:
{ "entry": [ { "time": 1520383571, "changes": [ { "field": "photos", "value": { "verb": "update", "object_id": "10211885744794461" } } ], "id": "10210299214172187", "uid": "10210299214172187" } ], "object": "user" }
Webhooks 是使用 HTTPS 傳送,因此您的伺服器必須能夠接收和處理 HTTPS 要求,而且必須安裝有效的 TLS/SSL 憑證。不支援自我簽署憑證。
應用程式通常必須先進行應用程式審查,然後才能公開。進行審查時,應用程式可以要求批准特定的權限,這些權限會控管在使用圖形 API 時,應用程式能夠存取的資料類型。
雖然 Webhooks 產品不需要進行應用程式審查,但確實需要權限。這表示即使您設定 Webhook,並訂閱物件類型的特定欄位,如果該類型的物件有任何變更,您也不會收到通知,除非:
處於開發模式的應用程式只會接收透過應用程式主控板所發起的測試通知,或由具備應用程式角色的用戶所發起的通知。
請注意,Messenger Webhooks 事件的開發模式行為並不相同。如需詳細資訊,請參閱 Messenger 的 Webhooks 文件。
若要使用 Webhooks,您必須先在安全的(HTTPS)伺服器上設定端點,然後在應用程式主控板中新增並配置 Webhooks 產品。這些文件的其餘部分會說明如何完成這兩個步驟。
準備好了嗎?我們開始吧!