이벤트

이벤트는 에이전트가 주고받을 수 있는 알림입니다. 세 가지 유형의 이벤트가 있습니다.

서버 생성 이벤트

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 이벤트가 수신됩니다.
  • 메시지가 전송되지 않은 경우 취소 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" \
-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('../libs/rbm_api_helper');

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage('+12223334444', messageId);
이 코드는 RBM 샘플 상담사에서 발췌한 것입니다.

Java

import com.google.rbm.samples.lib.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" \
-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('../libs/rbm_api_helper');

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage('+12223334444', function() {
    console.log('Typing event sent!');
});
이 코드는 RBM 샘플 상담사에서 발췌한 것입니다.

Java

import com.google.rbm.samples.lib.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 샘플 상담사에서 발췌한 것입니다.