Webhooks

總覽

Webhooks 讓自訂整合應用程式能夠訂閱 Workplace 中的事件並即時接收更新。當 Workplace 中發生變更時,系統會將 HTTPS POST 要求傳送到訂閱相關 Webhook 主題之每個自訂整合應用程式的回呼網址。

如此可讓應用程式更有效率,因其能夠確切知道變更何時發生,且不需依賴連續或甚至定期的圖形 API 要求來取得最新內容。

Workplace 專用 Webhook 支援是由支援圖形 API 專用 Webhooks 的相同架構所提供。

訂閱 Webhook 主題

編輯自訂整合」對話方塊為可供 Workplace 上的應用程式使用的每個 Webhook 主題提供頁籤。

「編輯自訂整合」對話方塊中的 Webhooks 區塊

若要對指定主題新增 Webhook 訂閱,請提供回呼網址驗證權杖,然後選擇應用程式將提供之功能所需的訂閱欄位

每個 Webhook 主題只能訂閱一個網址,但可以對多個主題使用同一網址。

處理驗證要求

當您新增訂閱或修改現有訂閱時,Meta 伺服器將向您的回呼網址發出 GET 要求,以驗證回呼伺服器的有效性。

系統會將查詢字串與下列參數一起附加到此網址:

  • hub.mode - 此參數會傳遞「subscribe」字串
  • hub.challenge - 隨機字串
  • hub.verify_token - 建立訂閱時指定的 verify_token

每當您的端點收到驗證要求時,都必須執行以下作業:

  • 驗證 hub.verify_token 值是否與設定 Webhook 時在「驗證權杖」欄位中所設定的字串相符。
  • hub.challenge 值回覆。

Webhook 安全性

所有針對開發人員定義回呼網址的 Webhook 呼叫都是透過 HTTPS 進行,可確保 Webhook 承載的傳輸層級安全性。

為了提供額外的安全性,每個 POST 承載中都包含 HTTP 標頭 X-Hub-Signature-256,您應用它來驗證承載是否來自 Meta 伺服器。

有關此行為的完整詳細資訊,請參閱 Webhook 架構文件

所有針對開發人員定義回呼網址的 Webhook 呼叫都是透過 HTTPS 進行,可確保 Webhook 承載的傳輸層級安全性。

使用 API 呼叫訂閱 Webhooks

讀取或修改 Webhook 訂閱的 API 呼叫需要使用應用程式權杖(不是一般自訂整合權杖)進行。您可以透過結合應用程式編號、「|」符號和應用程式密鑰來產生應用程式權杖。

例如:

資料字串

應用程式編號

504221332732118

應用程式密鑰

d76ab3f35f3ff5aa6ffdc8637a660d2ea7

應用程式權杖:

504221332732118|d76ab3f35f3ff5aa6ffdc8637a660d2ea7

取得目前的 Webhook 訂閱(使用應用程式權杖)

GET graph.facebook.com
  /{app-id}/subscriptions
    &access_token={your_app_token}

新增 Webhook 訂閱(使用應用程式權杖)

POST graph.facebook.com
  /{app-id}/subscriptions
    ?object=page
    &fields=mention,messages
    &callback_url={your-url}
    &verify_token={your-verify-token}
    &access_token={your_app_token}

粉絲專頁/應用程式訂閱疑難排解

如果未依預期收到 Webhooks,建議檢查粉絲專頁和應用程式之間的訂閱設定是否正確。其應該會自動設定,但在某些情況下可能會失敗。例如,若 Webhook 傳遞長時間失敗,則可以移除此訂閱。若是第三方應用程式,此情況將導致應用程式主控板中出現警告。

若要檢查此訂閱,可以使用下列 API 呼叫:

取得目前的應用程式/粉絲專頁訂閱(使用粉絲專頁權杖)

GET graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}

若要重新建立此訂閱,可以使用下列 API 呼叫:

重新建立目前的應用程式/粉絲專頁訂閱(使用粉絲專頁權杖)

POST graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}
	{"subscribed_fields": ["messages"...]}

Webhook 主題

系統會將 Workplace 的動態依主題分組。每個主題都有許多欄位,這些欄位會對應到指定主題的事件。應用程式可以訂閱每個主題的 Webhook 更新,以及每個主題內的特定欄位。

Workplace 目前提供下列主題和社團的 Webhooks:

粉絲專頁

如需詳細資訊,請參閱粉絲專頁主題參考文件

訂閱欄位行為

mention

當社團中提及自訂整合粉絲專頁(Bot)時觸發。

messages

在 Work Chat 中向自訂整合粉絲專頁(Bot)傳送訊息時觸發。

message_deliveries

當傳遞自訂整合粉絲專頁(Bot)所傳送的訊息時觸發。

messaging_postbacks

在 Work Chat 中按下回傳按鈕時觸發。

message_reads

當收件者讀取來自自訂整合粉絲專頁(Bot)的訊息時觸發。

社團

如需詳細資訊,請參閱社團主題參考文件

訂閱欄位行為

posts

當社團中新增、更新或刪除貼文時觸發。

comments

在社團中,每當加入、更新或刪除貼文的新留言時觸發。

membership

當社團成員變更時觸發。

membership_requests

當用戶要求社團成員時觸發。

用戶

如需詳細資訊,請參閱用戶主題參考文件

訂閱欄位行為

status

當用戶在自己的個人檔案發佈或編輯動態更新時觸發。其包括用戶動態時報的貼文。

events

每當用戶建立、接受或婉拒事件時觸發。

message_sends

每當用戶傳送 Workplace 聊天室訊息時觸發。

message_unsends

每當用戶移除對話串中所有人的 Workplace 聊天室訊息時觸發。

timeline_comments

每當用戶動態時報的貼文出現留言時觸發。

安全性

如需詳細資訊,請參閱安全性主題參考文件

admin_activity

當 Workplace 社群中新增或移除管理員時觸發的事件

事件行為

admin_set_to_unclaimed

管理員已從管理員介面或透過帳號管理 API 將用戶的帳號狀態設定為未要求

admin_force_log_out

管理員已從管理員介面強制用戶登出所有裝置。

admin_deactivate

管理員已從管理員介面或透過帳號管理 API 停用帳號。

admin_activate_account

管理員已從管理員介面或透過帳號管理 API 啟用帳號。

force_password_reset

管理員已從管理員介面強制用戶重設密碼。

admin_create_account

管理員已從管理員介面建立帳號。

compromised_credentials

當我們懷疑社群中某些用戶帳號的 Workplace 密碼可能存在風險時觸發的事件。

事件行為

found_compromised_credentials

Workplace 已發現遭入侵的認證。

files

在 Workplace 檔案動態上觸發的事件。

事件行為

group_file_upload

用戶已將檔案上傳到社團。

group_file_download

用戶已從社團下載檔案。

file_upload_malware_found

發現上傳的檔案包含惡意軟體。

groups

當用戶建立或加入 Workplace 跨公司社團時觸發的事件。

事件行為

mcg_join

社群的用戶已加入 MCG。

mcg_create

社群的用戶已建立 MCG。

integrations

當管理員建立或變更整合屬性時觸發的事件。

事件行為

custom_integration_create

管理員已建立自訂整合。

custom_integration_edit

管理員已編輯自訂整合。

custom_integration_delete

管理員已刪除自訂整合。

custom_integration_token_reset

管理員已產生新的自訂整合存取權杖。

content_app_install

用戶已建立內容整合。

content_app_uninstall

用戶已解除安裝內容整合。

invites

當用戶透過自助邀請加入 Workplace 時觸發的事件。

事件行為

coworker_invite_sent

用戶已邀請同事加入社群。

self_invite_sent

用戶已為自己要求邀請電子郵件。

passwords

當用戶變更密碼或要求重設密碼時觸發的事件。

事件行為

password_change

由於用戶完成密碼復原或透過帳號設定,其密碼已變更。

password_reset_request

系統已啟動用戶的密碼復原流程,並將代碼傳送到用戶的電子郵件地址。

password_reset_wrong_code

用戶輸入不正確的重設密碼復原碼。

password_reset_success

用戶的密碼復原流程已成功完成。

sessions

當用戶登入或登出 Workplace 時觸發的事件。

事件行為

log_in

用戶已透過 www 或行動應用程式使用密碼或 SSO 登入 Workplace。

log_out

用戶已透過 www 或行動應用程式使用密碼或 SSO 登出 Workplace。

不包括管理員啟動的強制登出(請參閱 admin_force_log_out

two_factor

當用戶啟用或停用雙重驗證時觸發的事件。

事件行為

two_factor_enable

用戶已從「設定」頁籤啟用雙重驗證。這麼做並不會擷取確認特定手機的用戶,而是指示該功能已啟用。

two_factor_disable

用戶已從「設定」頁籤停用雙重驗證。這麼做並不會擷取停用特定手機之雙重驗證的用戶,而是指示該功能已停用。

add_two_factor_phone

用戶已新增並確認用於雙重驗證的手機。

two_factor_code_success

用戶在登入 Workplace 網站或行動版網站時,已輸入有效的雙重驗證代碼

two_factor_code_failure

用戶在登入 Workplace 網站或行動版網站時,已輸入無效的雙重驗證代碼

two_factor_code_success_m

用戶在登入 Workplace iOS 或 Android 行動應用程式時,已輸入有效的雙重驗證代碼

two_factor_code_failure_m

用戶在登入 Workplace iOS 或 Android 行動應用程式時,已輸入無效的雙重驗證代碼

reseller_events

與轉銷商相關的事件。

事件行為

reseller_user_added

允許轉銷商公司的非管理員用戶查看轉銷商主控台。

reseller_user_removed

不允許轉銷商公司的非管理員用戶查看轉銷商主控台。

reseller_invite_sent

轉銷商邀請其他公司與其建立連結。

reseller_invite_accepted

公司接受轉銷商邀請建立連結。

reseller_invite_declined

公司拒絕轉銷商邀請建立連結。

連結

如需詳細資訊,請參閱連結主題參考文件

事件行為

preview

要求存取可分享連結之用戶的中繼資料。

collection

在 Workplace 上分享之連結的中繼資料,用於產生預覽。

知識資料庫

如需詳細資訊,請參閱知識資料庫類別圖形 API 文件

訂閱欄位行為

categories

當新增、更新或刪除知識資料庫內容時,或是當更新讀取廣告受眾時觸發。

comments

在知識資料庫中,每當新增、更新或刪除新留言時觸發。

quicklinks

當新增、更新或刪除知識資料庫快速連結時觸發。