이벤트는 에이전트가 전송 및 수신할 수 있는 알림입니다. 이벤트에는 세 가지 유형이 있습니다.
서버에서 생성된 이벤트
RBM 플랫폼은 메시지 만료와 같은 서버 수준 업데이트에 관해 에이전트에 알리는 이벤트를 전송합니다.
형식 지정 및 값 옵션은 ServerEvent
를 참고하세요.
메시지가 만료됨. 취소 완료
메시지가 만료되어 취소되었습니다. 이 이벤트는 대체 메시지 전략의 좋은 트리거가 될 수 있습니다.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
메시지가 만료됨. 취소 실패
메시지가 만료되었지만 취소되지 않았습니다.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKE_FAILED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
메시지 전송이 보장되지는 않습니다.
- 메시지가 전송되면 웹훅에서
DELIVERED
이벤트가 수신됩니다. - 메시지가 전송되지 않은 경우 revoke API를 사용하여 취소 요청을 전송합니다.
OTP 또는 사기 알림과 같이 시간이 중요한 메시지인 경우 사용자에게 중복 메시지가 전송되더라도 SMS와 같은 대체 채널을 통해 메시지를 보내는 것이 가장 좋습니다.
사용자 생성 이벤트
사용자 메시지 및 기능 확인과 마찬가지로 상담사는 사용자 이벤트를 JSON으로 수신합니다.
형식 지정 및 값 옵션은 UserEvent
를 참고하세요.
사용자가 상담사 메시지를 수신함
이 이벤트는 메시지가 전송되었음을 나타냅니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "DELIVERED", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
사용자가 상담사 메시지를 읽습니다.
이 이벤트는 메시지가 열렸거나 확인되었음을 나타냅니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "READ", "eventId": "EVENT_ID", "messageId": "MESSAGE_ID", "agentId": "AGENT_ID" }
사용자가 입력을 시작함
이 이벤트는 사용자가 입력 중임을 나타냅니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
사용자가 문자 메시지를 보냅니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "text": "Hi", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
사용자가 파일을 전송함
{ "senderPhoneNumber": "PHONE_NUMBER", "userFile": { "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } }, "eventId": "EVENT_ID",, "agentId": "AGENT_ID" }
사용자가 추천 답글을 탭함
사용자가 추천 답글을 탭하면 상담사는 답글의 포스트백 데이터와 텍스트가 포함된 이벤트를 수신합니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234", "text": "Hello there!" } }
사용자가 추천 작업을 탭합니다.
사용자가 추천 작업을 탭하면 에이전트는 작업의 포스트백 데이터가 포함된 이벤트를 수신합니다.
{ "senderPhoneNumber": "PHONE_NUMBER", "eventId": "EVENT_ID", "agentId": "AGENT_ID", "suggestionResponse": { "postbackData": "postback_1234" } }
상담사가 생성한 이벤트
에이전트는 이벤트를 전송하여 인간의 상호작용을 시뮬레이션하고 사용자에게 에이전트가 메시지에 응대하고 있다고 안심시킵니다. 사용자에게는 대화 내 알림으로 이벤트가 표시됩니다.
형식 지정 및 값 옵션은 phones.agentEvents
를 참고하세요.
상담사가 READ
이벤트를 전송함
사용자에게는 이 이벤트가 특정 메시지의 읽음 확인으로 표시됩니다. 이를 통해 사용자는 RBM 플랫폼에서 메시지를 전송했고 에이전트가 메시지를 처리 중임을 알 수 있습니다.
다음 코드는 일치하는 messageId
가 있는 메시지에 관한 READ
이벤트를 전송합니다.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'READ', 'messageId': 'MESSAGE_ID' }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
자바
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage(messageId, "+12223334444");이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that message_id was read rbm_service.send_read_event('+12223334444', message_id)이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that messageId has been read rbmApiHelper.SendReadMessage(messageId, "+12223334444");이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
상담사가 IS_TYPING
이벤트를 전송함
이 이벤트는 사용자에게 입력 표시기로 표시되며 상담사가 메시지를 작성 중임을 알립니다. 입력 표시기는 잠시 후(약 20초) 또는 사용자 기기에 상담사로부터 새 메시지가 수신되면 만료됩니다. 에이전트는 여러 IS_TYPING
이벤트를 전송하여 입력 표시기의 만료 타이머를 재설정할 수 있습니다.
다음 코드는 IS_TYPING
이벤트를 전송합니다.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'IS_TYPING', }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage('+12223334444', function() { console.log('Typing event sent!'); });이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
자바
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage("+12223334444");이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that the agent is typing rbm_service.send_is_typing_event('+12223334444')이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that the agent is typing rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");이 코드는 RBM 샘플 에이전트에서 발췌한 것입니다.