Webhooks 讓您可以就 Meta 社交關係圖內特定物件的變更接收即時的 HTTP 通知。舉例來說,當您的應用程式用戶更改其電郵地址,或當其在您的 Facebook 專頁上留言時,我們可以傳送通知給您。這樣,您就無需查詢 Graph API 以了解可能發生或未發生的物件變更,協助您避免達到限速額度。
付款專用 Webhooks 和 Messenger 專用 Webhooks 的配置步驟稍有不同。如果您要設定上述產品的 Webhook,請參閱個別的文件以了解設定說明。
Meta 社交關係圖中有許多類型的物件,例如「用戶」物件和「專頁」物件。所以每次配置 Webhook 時,您都必須先選擇一種物件類型。由於不同物件有不同的欄位,您必須針對該物件類型訂閱特定欄位。每當您訂閱的物件欄位的值有所變動,我們就會傳送通知給您。
我們會以 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 證書。系統不支援自行簽署的憑證。
應用程式在正式發佈前,一般需要通過應用程式審查。審查期間,應用程式可以要求批准使用特定權限,以便控制使用 Graph API 時應用程式可存取的數據類型。
雖然 Webhooks 產品無需經過應用程式審查,但亦設有權限限制。這代表即使您設定了 Webhook,並訂閱了物件類型的特定欄位,您也不會收到任何有關該物件類型的變更通知,除非:
如果應用程式處於開發模式,將只能收到透過應用程式管理中心發起的測試通知,或由具備應用程式角色的用戶所發起的通知。
請注意,開發模式行為不同於 Messenger Webhooks 事件。請參閱 Messenger 專用 Webhooks 文件,以了解更多詳情。
如要使用 Webhooks,您需要在安全的(HTTPS)伺服器上設定一個端點,然後在應用程式管理中心中加入和配置 Webhooks 產品。餘下的這些文件會講解如何完成這些步驟。
準備好了嗎?馬上開始吧!