傳送及接收訊息和事件是服務專員與使用者之間溝通的核心。代理程式會透過 HTTP POST 要求傳送訊息、事件和要求給使用者,但會透過已設定的 webhook 接收使用者建立的訊息和事件。
以下是對話流程的範例,使用範例資料說明訊息、事件和要求如何建立實用且有意義的互動。
向全世界問好!
在這個範例中,代理程式會將 Hello, World!
傳送給使用者,而使用者則回覆 Hello to you!
。
代理程式會傳送功能檢查要求,驗證使用者的裝置是否支援 RBM。
服務專員會傳送:
GET /v1/phones/+12223334444/capabilities?requestId=147547143069602483572&agentId=welcome-bot HTTP/1.1 Host: us-rcsbusinessmessaging.googleapis.com Content-Type: application/json
RBM 平台會傳送能力檢查回應給代理程式,指出使用者的裝置可以接收 RBM 訊息。
服務專員會收到:
{ "rbmEnabled": true, "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION" ] }
代理程式會將
Hello, World!
訊息傳送至 RBM API,再由 API 將訊息傳送至使用者的裝置。服務專員會傳送:
POST /v1/phones/+12223334444/agentMessages?messageId=123&agentId=welcome-bot HTTP/1.1 Host: us-rcsbusinessmessaging.googleapis.com Content-Type: application/json { "contentMessage": { "text": "Hello, World!", } }
RBM 平台會將訊息傳送至使用者的裝置,並將
DELIVERED
事件傳送至服務專員。服務專員會收到:
{ "senderPhoneNumber": "+12223334444", "agentId": "welcome-bot@rbm.goog", "eventType": "DELIVERED", "eventId": "Ms6oOiEli6QS-fe8QFrmhfIg", "messageId": "123" }
使用者在裝置上開啟訊息,系統會將
READ
事件傳送給服務專員。服務專員會收到:
{ "senderPhoneNumber": "+12223334444", "agentId": "welcome-bot@rbm.goog", "eventType": "READ", "eventId": "Ms6oOiEli6QS-ge9ZFsmgTj", "messageId": "123" }
使用者編寫並傳送回覆給服務專員。
服務專員會收到:
{ "senderPhoneNumber": "+12223334444", "agentId": "welcome-bot@rbm.goog", "messageId": "msg000999888777a", "sendTime": "2018-12-31T15:01:23.045123456Z", "text": "Hello to you!", }
RBM 平台在收到使用者訊息時,會自動在使用者的裝置傳送
DELIVERED
事件。代理程式會傳送
READ
事件來回應使用者的訊息,讓他們知道已收到及確認訊息。服務專員會傳送:
POST /v1/phones/+12223334444/agentEvents?eventId=1234&agentId=welcome-bot HTTP/1.1 Host: us-rcsbusinessmessaging.googleapis.com Content-Type: application/json { "eventType": "READ", "messageId": "msg000999888777a" }