如何串接兩個LINE機器人 - 使用子場景實現無縫轉換
描述
本文將介紹如何在已有LINE機器人的基礎上,透過子場景功能實現兩個機器人的串接,讓您的業務流程更加靈活且完整。我們將詳細說明實作方法、設定步驟以及使用注意事項。
為什麼需要串接兩個LINE機器人?
在實際應用場景中,串接兩個LINE機器人具有以下優點:
- 功能模組化:不同機器人可以負責不同的業務邏輯,讓系統更容易維護
- 彈性拓展:能夠根據需求無縫整合新的機器人功能
- 資源優化:可以根據不同場景調用不同的機器人,提高資源使用效率
實作方法
前置準備
首先,我們需要使用子場景功能。子場景的主要目的是暫時中止當前場景,並呼叫其他HTTP方法。這與我們先前介紹的整合原生LINE客服的方法相似。
步驟1:取得加密金鑰
- 前往文字模板測試
- 將您的LINE secret填入 {{Utils.encrypt(‘xxx’)}} 中,產生的密鑰可以複製起來
如果您不知道如何找到LINE secret,可以參考設置LINE Webhook的說明。
步驟2:設定資源節點
在資源節點中需要進行以下設定:
- 填寫第三方webhook節點
- 使用以下格式產生x-line-signature的value:
{{Utils.generateSignature('{"events":['+data.conversation._message.raw_event+']}',Utils.decrypt('您的機器人加密後的文字'),'HMACSHA256')}}
- 在Body Params中設定event請求路徑為events[0]
- Payload設定為
{"events":[{}]}
步驟3:設定流程
您需要設置兩個主要流程:
-
轉接流程:
-
當前使用流程:
步驟4:設定子場景
在子場景設定中:
- 將情境節點(transfer_webhook)使用聆聽節點
- 設定子節點名稱為sub_transfer(可自訂)
- 聆聽節點可設定特定觸發條件,例如詢問等於[wake_up]時,他就會結束該節點
實際效果展示
下圖展示了轉移前後的畫面,用戶可以通過點選返回按鈕回到第一個機器人:
重要注意事項
- channelID一致性:兩個機器人的channelID必須保持一致
- 功能限制:
- 目前僅支援文字及附件的轉接
- follow、unfollow等其他event不會被傳送
- 使用場景:此方法主要用於回覆是否可以在原有架構上呼叫其他機器人,並非專門為串接兩個機器人所設計(不是為了這個功能設計的,而是用現有功能改造的)
結論
串接兩個LINE機器人能夠大幅提升業務流程的靈活性,讓您的服務更加完整。透過子場景的實作方式,您可以輕鬆實現機器人之間的轉換,為用戶提供更好的服務體驗。在實作過程中,請務必注意相關限制和設定要求,確保系統正常運作。