Webhooks

概覽

Webhooks 支援自訂整合工具應用程式訂閱 Workplace 中的事件並即時接收更新。當 Workplace 有所變更時,系統便會向所有已訂閱相關 Webhook 主題的自訂整合工具應用程式的回呼網址傳送 HTTPS POST 要求。

這樣能讓應用程式確切知道變更何時發生,不需依賴連續或定期發出 Graph API 要求來取得最新內容,因此可讓應用程式更有效率。

Workplace 專用 Webhook 支援由支援 Graph 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 值回應。

Webhooks 安全

所有向開發人員定義的回呼網址所發出的 Webhook 呼叫均透過 HTTPS 完成,可在傳輸層級確保 Webhook 裝載的安全。

為進一步保障安全,每個 POST 裝載中還加入了 HTTP 頁首 X-Hub-Signature-256。您應以此驗證裝載是否來自 Meta 伺服器。

如要了解此行為的完整詳情,請參閱 Webhooks 框架文件

所有向開發人員定義的回呼網址所發出的 Webhook 呼叫均透過 HTTPS 完成,可在傳輸層級確保 Webhook 裝載的安全。

使用 API 呼叫訂閱 Webhooks

如要發出 API 呼叫來讀取或修改 Webhook 訂閱,需要使用憑證,而不是平時用的自訂整合工具憑證。將應用程式編號、「|」符號和應用程式密鑰串連在一起,即為應用程式憑證。

例如:

資料字串

應用程式編號

504221332732118

應用程式密鑰

d76ab3f35f3ff5aa6ffdc8637a660d2ea7

應用程式憑證

504221332732118|d76ab3f35f3ff5aa6ffdc8637a660d2ea7

取得目前 Webhooks 訂閱(使用應用程式憑證)

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

新增新的 Webhooks 訂閱(使用應用程式憑證)

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

用戶在網頁或流動應用程式上使用密碼或 SSO 登入 Workplace。

log_out

用戶在網頁或流動應用程式上使用密碼或 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 上分享的連結之中繼資料。

知識資料庫

如需更多資訊,請參閱知識資料庫類別 Graph API 文件

訂閱欄位行為

categories

在新增、更新或刪除知識資料庫內容/更新讀者時觸發。

comments

在每次為知識資料庫新增、更新或刪除回應時觸發。

quicklinks

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