適用於 Workplace 的 Bot

開發適用於 Workplace 群組和聊天的 BOT(機械人程式)

概覽

Workplace 自訂整合工具可讓您開發強大的 Bot,在群組和聊天中與用戶互動。

您可以開發一個可以自動發佈內容至群組、能以更多資訊回應問題,或可在帖子回應中被提及時採取行動的 Bot。您也可以開發其他 Bot,讓它們與 Work Chat 用戶交談以即時提供資訊,或者處理具結構性對話元素(例如快速回覆和常駐選單)的要求。

若要為您的社群開發 Bot,您需要「系統管理員」管理員角色。

如果您不是 Workplace 社群的管理員,您需要與管理員合作才能開發 Bot。

Bot 表示為專頁

與在 Messenger 開放平台類似,Bot 在 Workplace 都可表示為專頁。當您建立自訂整合應用程式時,系統會自動建立專頁。Workplace 社群的用戶可透過此專頁探索 Bot 並與之互動

Bot 專頁向內部公開,因此 Workplace 社群的任何成員都可以查看、標註和傳送訊息給 Bot。不過,視乎您在建立 Bot 時所選擇的權限級別而定,Bot 可能無法查看 Workplace 的所有內容並與之互動。

例如,如果您的 Bot 具有讀取群組內容權限,它就可以查看群組內容。如果您的 Bot 沒有發佈到群組權限,它將無法回覆任何群組中的內容。

此外,如果您的 Bot 具有傳送訊息給任何成員權限,用戶便只能在 Work Chat 中尋找 Bot 並向其傳送訊息。

群組 Bot

Bot 可以在群組中執行真人能完成的多項任務。這就代表,您可以開發 Bot 用以發佈新內容、以新資訊回應內容,以及讚好帖子來表示確認或核准。

此外,Bot 可以使用 @提及來提及用戶,引起用戶注意;也可以被提及,從而展開特定的工作流程或提出問題。

最後,Bot 可以訂閱群組和使用 @提及來提及 Webhooks,靠其提供的彈性方式來監控內容並與用戶互動。

聊天 Bot

雖然群組 Bot 能以非同步方式在多名用戶之間取用和分享資訊,但聊天 Bot 才最適合用來與一名特定用戶或多名已定義用戶進行直接的即時互動。

例如,聊天 Bot 的用途可以是根據即將舉行的活動(如面試或會議),向某人傳送重要的提醒或通知。Work Chat Bot 還可用於在對話中與用戶互動,以及根據收到的意見採取後續行動。

此互動模式的概念與 Messenger 開放平台所採用的概念相同。因此,Work Chat Bot 可以使用常駐選單快速回覆範本等功能,讓用戶體驗更加豐富。

Bot 對用戶聊天

當 Bot 具有傳送訊息給任何成員權限時,便可使用 Messenger 傳送 API 並透過用戶的電郵地址或 Workplace 編號,傳送 direct 訊息給 Workplace 的任何用戶。

新訊息自動提示中的 Bot

傳送訊息給任何成員權限還可讓您的 Bot 顯示在 Workplace Chat 介面的自動提示中。

新訊息自動提示中的 Bot

訂閱專頁訊息 Webhooks 後,您的 Bot 也會在用戶向其傳送訊息時收到通知,而您可以結合傳送和接收來建立對話流程。

Bot 對用戶對話

Bot 對群組聊天

當 Bot 具有傳送訊息給任何成員群組聊天 Bot 權限時,便可建立及管理多人群組聊天對話串,以及被新增至這些對話串。Bot 可以指定傳送對象名單來建立新群組對話串,還可以重新命名對話串,以便與特定用戶就特定主題建立聊天討論。

包含特定用戶的已命名對話串,由 Bot 建立。

有了群組聊天支援後,Bot 便會顯示在現有群組聊天對話串中的新增用戶自動提示中。接著,Bot 便會接收由該對話串中的用戶傳送的每則訊息的 Webhooks,並可以使用其 thread ID 回覆該對話串。

將 Bot 新增至群組聊天,然後提及 Bot

建立新的已命名對話串

若要建立具有特定傳送對象的新對話串,請向 /me/messages 端點執行 POST 要求,並指定 recipient IDs 陣列和初始 message 裝載,如下所示:

POST /me/messages
{
  "recipient": {
    "ids": [<user_ids>]
  },
  "message": <message_payload>
}

您將取回包含 thread ID 的回應裝載,可供您在跟進訊息中使用。

如果您再次使用包含相同傳送對象名單的同一端點,系統將建立新對話串。若要將跟進訊息傳送至已建立的對話串,請使用 recipient 裝載中的 thread_id 向 /me/messages 端點執行 POST 要求,如下所示:

POST /me/messages
{
  "recipient": {
    "thread_key": <thread_id>
  },
  "message": <message_payload>
}

若要重新命名由 Bot 建立的對話串,請向 /{thread}/threadname 關係連線執行 POST 要求,如下所示:

POST /t_<thread_id>/threadname
{
  "name": "new name"
}

請注意,您必須在關係連線路徑中的 thread_id 前面加上「t_」。

您還可以在 /{thread}/participants 關係連線執行 POSTDELETE 要求,以新增及移除對話串的參與者,如下所示:

POST t_<thread_id>/participants
{
  "to": [<user_ids>]
}

DELETE t_<thread_id>/participants
{
  "to": [<user_ids>]
}

請注意,您可以在 /{thread}/participants 關係連線操作由整合工具建立的對話串。

在對話串中被提及

當 Bot 在訊息中被提及時,我們的 Webhooks 會傳送該訊息的標註成員名單,如以下裝載所示:

{
    "object":"page",
    "entry":[{
        "id":"746230239054322",
        "time":1539281406974,
        "messaging":[{
            ...
            "message":{
                "mid":"<message id>",
                "seq":2192,
                "text":"@Edu Gomes @Example Bot What's 2+2?"
            },
            "mentions":[{
                "offset":0,
                "length":10,
                "id":"100017376437045"
            },
            {
                "offset":11,
                "length":12,
                "id":"746230239054322"
            }]
        }]
    }]
} 

Bot 平台合作夥伴

Workplace 中有許多 Bot 平台合作夥伴已為 Workplace 的 Bot 建立支援。您可以按此檢視這些合作夥伴的名單。您可以使用其中一個平台來開發強大的 Bot,無需撰寫任何代碼。

最佳操作實例

使用正確的渠道

決定是否要為 Bot 建立群組或聊天互動時,請您仔細考慮哪裡是最能充分發揮 Bot 用處的位置。

  • 如果您要開發的 Bot 可供多人同時互動,或者發佈可供多人查看的內容,建議您在開發時確保此 Bot 可將內容發佈到群組,並能回覆群組中的帖子回應和提及。
  • 如果您要開發的 Bot 需要提醒用戶某些即時事件、可能需要快速跟進的事件或用戶應該私下互動的事件,您便應為 Bot 提供 Work Chat 對話支援。

一個應用程式可以同時處理兩個渠道。例如,您的服務台 Bot 有時要在 Work Chat 中接收訊息,有時要在群組中發佈內容並接收回覆。

深層連結至 Bot

使用 https://w.m.me/{page-id} 連結格式,直接連結至 Workplace 的聊天 Bot。網頁、Android 和 iOS 目前皆支援 Workplace 聊天室。在已安裝 Workplace 聊天室應用程式的流動平台上,連結會直接在應用程式中開啟。

轉介參數

轉介參數也可用於將更多資訊併入連結。例如,這可讓 Bot 根據已點擊到達 Bot 的用戶來執行自訂動作。

若要使用此功能,請使用 https://w.m.me/{page-id}?ref={referral_parameter} 連結格式。此功能的執行方式與 Messenger 開放平台相同。如需詳細資訊,請參閱 Messenger 文件

相關的 Webhook 欄位為 messaging_referrals,且需要新的訂閱。之前,Workplace 應用程式無法使用此 Webhook 欄位,不過現在您可以透過平時的方式訂閱。

Webhook 裝載與 Messenger 的格式相同,只是有一些常見差異:Workplace 使用應用程式範圍編號,而非專頁範圍編號。此外,Workplace 也會在 Webhook 中提供社群欄位,內含社群編號。

群組互動

應用程式訂閱 Webhooks 後,當 Bot 在群組帖子或回應中被提及時,就會收到通知。請務必確保 Bot 能夠及時回覆提及。如果 Bot 必須先處理要求,然後才能回覆,則您可以讚好該回應,因為這樣可以告知用戶 Bot 知道自己被提及。

然後,如果您在回應中被提及後想要提供資訊,請新增對話串回覆,讓其他的群組對話保持暢通。

如果 Bot 需要向原發佈者提供資料,請對帖子本身留言,讓發佈者也能收到通知。

聊天互動

Work Chat 的 Bot 互動支援的功能與 Messenger 開放平台類似。這些功能包括快速回覆按鈕和範本,可協助您在 Bot 對話中執行決策樹。

這樣一來,您可以更輕鬆地建立實用的工作流程,並減少要求用戶進行的輸入操作,無需任何複雜的自然語言處理。如果您正在開發供全球員工使用的 Bot,這樣可讓國際化變得簡單許多。