RBM 代理程式會透過 Webhook 接收訊息和事件。使用者傳送訊息給代理程式時,Google 的 RBM 服務會將訊息傳送至您設定的 Webhook。接著,代理程式可以解碼及處理訊息,並向使用者發出回應。

使用者可以傳送 RCS 用戶端允許的任何文字、位置或檔案。 服務專員必須處理使用者可能傳送的任何文字、位置或檔案,以及這些訊息可能觸發的任何錯誤狀態。
處理傳入訊息
代理程式處理及回覆使用者訊息的方式,很大程度上取決於您的業務邏輯。不過,一般來說,回覆使用者訊息的步驟是一致的。
步驟 1:找出使用者傳送的訊息類型
使用者可以傳送四種訊息:
步驟 2:處理訊息內容
使用者訊息的內容應引導代理程式的邏輯和對話中的下一個回覆。
如要輕鬆識別使用者意圖,最簡單的方法是使用建議回覆或建議動作的回傳資料。無論建議的相關文字為何,回傳資料都是機器可解讀的。
如果使用者傳送訊息,代理程式可能會剖析回應中的支援關鍵字,或使用 NLU (例如 Dialogflow) 處理使用者訊息,並找出後續路徑。
位置和檔案訊息不包含文字或回傳資料,因此服務專員應先考量對話內容和近期訊息,再回覆。
如果代理程式不知道如何回應使用者的訊息,應以錯誤狀態回應,並提示使用者提供額外資訊、以不同方式要求輸入內容,或顯示代理程式知道如何回應的建議回覆和建議動作,嘗試繼續對話。
步驟 3:完成互動的商業邏輯
代理程式識別出使用者訊息的正確回覆後,會從基礎架構收集必要資訊,並視需要與其他系統互動,以完成互動的商業邏輯。
步驟 4:回覆使用者
代理程式完成互動的商業邏輯後,會傳送另一則訊息,並繼續與使用者對話。
範例
下列程式碼顯示代理程式如何接收訊息。如需格式和值資訊,請參閱「UserMessage」。
注意:如果是美國流量,使用者訊息和輕觸建議動作的行為會受到美國帳單模式分類的影響。代理程式收到這些事件時,會包含 richMessageClassification 欄位,用於判斷可計費的事件類型。如需分類詳細資料,請參閱美國帳單模式指南。
專員收到文字訊息
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"text": "Hello, world!"
}代理程式收到建議訊息
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"suggestionResponse": {
"postbackData": "suggestion_1",
"text": "Suggestion #1"
}
}服務專員收到位置資訊
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
}
}專員收到檔案
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
處理傳入事件
代理程式傳送給使用者的訊息送達並讀取後,代理程式會收到通知。
下列程式碼顯示代理程式如何接收訊息。如需格式和值資訊,請參閱UserEvent。
訊息已傳送給使用者
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "DELIVERED"
}使用者已讀取訊息
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "READ"
}使用者正在輸入
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "IS_TYPING",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"agentId": "AGENT_ID"
}