리소스: AgentMessage
에이전트에서 사용자에게 보내는 메시지입니다.
JSON 표현 |
---|
{ "name": string, "sendTime": string, "contentMessage": { object ( |
필드 | |
---|---|
name |
이 필드는 RBM 플랫폼에서 설정합니다. 에이전트 메시지를 만들 때 이를 포함하지 마세요. 이 필드는 'phones/{E.164}/agentMessages/{messageId}'를 확인합니다. 여기서 {E.164}는 E.164 형식의 사용자 전화번호이고 {messageId}는 에이전트 메시지의 에이전트 할당 ID입니다. |
sendTime |
이 필드는 RBM 플랫폼에서 설정합니다. 에이전트 메시지를 만들 때 이를 포함하지 마세요. 이 필드는 메시지가 사용자에게 전송되는 시간을 결정합니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
contentMessage |
에이전트 메시지의 콘텐츠입니다. |
통합 필드
|
|
expireTime |
선택사항입니다. 이 리소스가 만료된 것으로 간주되는 시점의 UTC 기준 타임스탬프입니다. 이 값이 설정되거나 TTL 필드가 설정된 경우 출력에 제공됩니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
ttl |
선택사항입니다. 입력 전용. 입력 전용. 메시지가 자동으로 취소되기 전까지 유지되는 기간입니다. 소수점 아래가 최대 9자리까지이고 ' |
AgentContentMessage
에이전트에서 사용자에게 보낸 메시지의 콘텐츠입니다.
JSON 표현 |
---|
{ "suggestions": [ { object ( |
필드 | |
---|---|
suggestions[] |
관련 상담사 메시지 뒤에 표시되는 추천 답장 및 추천 작업 목록으로, 추천은 최대 11개입니다. 연결된 에이전트 메시지가 대화 내의 최신 메시지인 경우에만 칩이 표시됩니다 (에이전트 및 사용자 메시지 모두 포함). 사용자는 추천 답장을 탭하여 텍스트 답장을 상담사에게 다시 보내거나 추천 작업을 탭하여 기기에서 기본 작업을 시작할 수 있습니다. |
통합 필드 content . 에이전트 메시지 content 의 콘텐츠는 다음 중 하나여야 합니다. |
|
text |
UTF-8로 인코딩된 텍스트입니다. |
fileName |
파일의 고유한 이름입니다. RBM 플랫폼은 에이전트가 파일을 업로드하면 파일 이름을 반환합니다. 지원 중단되고 아래의 uploadRbmFile로 대체됨 |
uploadedRbmFile |
RBM 서버에 업로드되어 게재된 파일 및 썸네일의 식별자가 포함됩니다. |
richCard |
독립형 리치 카드입니다. |
contentInfo |
파일에 대한 정보(파일의 URL 및 파일 썸네일의 URL 포함) RBM 플랫폼은 캐시의 콘텐츠를 제공하지만, 에이전트는 RBM 플랫폼이 새 버전의 콘텐츠를 가져오고 캐시를 새로고침하도록 강제할 수 있습니다. |
UploadedRbmFile
파일 및 썸네일 정보가 포함된 메시지
JSON 표현 |
---|
{ "fileName": string, "thumbnailName": string } |
필드 | |
---|---|
fileName |
파일 업로드 시 RBM 플랫폼에서 반환한 파일 이름입니다. |
thumbnailName |
썸네일이 업로드될 때 RBM 플랫폼에서 반환한 썸네일의 이름입니다. |
RichCard
에이전트에서 사용자에게 전송된 독립형 리치 카드 또는 리치 카드의 캐러셀입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
통합 필드 card . 독립형 카드 또는 카드 캐러셀입니다. card 은 다음 중 하나여야 합니다. |
|
carouselCard |
카드 캐러셀입니다. |
standaloneCard |
독립형 카드 |
CarouselCard
카드 캐러셀입니다.
JSON 표현 |
---|
{ "cardWidth": enum ( |
필드 | |
---|---|
cardWidth |
캐러셀에 있는 카드의 너비입니다. |
cardContents[] |
캐러셀에 있는 각 카드의 콘텐츠 목록입니다. 캐러셀은 최소 2개, 최대 10개의 카드를 포함할 수 있습니다. |
CarouselCard.CardWidth
캐러셀에 있는 카드의 너비입니다.
열거형 | |
---|---|
CARD_WIDTH_UNSPECIFIED |
지정되지 않음 |
SMALL |
120DP 세로로 긴 미디어는 사용할 수 없습니다. |
MEDIUM |
232DP |
CardContent
카드 콘텐츠
JSON 표현 |
---|
{ "title": string, "description": string, "media": { object ( |
필드 | |
---|---|
title |
(선택사항) 카드 제목입니다. 최대 200자(영문 기준) |
description |
(선택사항) 카드 설명입니다. 최대 2,000자(영문 기준)까지 허용됩니다. |
media |
(선택사항) 카드에 포함할 미디어 (이미지, GIF, 동영상)입니다. |
suggestions[] |
(선택사항) 카드에 포함할 추천 목록입니다. 추천은 최대 4개입니다. |
미디어
리치 카드 내의 미디어 파일입니다.
JSON 표현 |
---|
{ "height": enum ( |
필드 | |
---|---|
height |
세로 레이아웃이 포함된 리치 카드 내의 미디어 높이입니다. 가로 레이아웃이 포함된 독립형 카드의 경우 높이를 맞춤설정할 수 없으며 이 입력란이 무시됩니다. |
통합 필드 content . 미디어 콘텐츠 content 은 다음 중 하나여야 합니다. |
|
fileName |
파일의 고유한 이름으로, 파일이 업로드될 때 RBM 플랫폼에서 반환됩니다. 지원 중단되고 아래의 uploadRbmFile로 대체됨 |
uploadedRbmFile |
RBM 서버에 업로드되어 게재된 파일 및 썸네일의 식별자가 포함됩니다. |
contentInfo |
파일에 대한 정보(파일의 URL 및 파일 썸네일의 URL 포함) RBM 플랫폼은 캐시의 콘텐츠를 제공하지만, 에이전트는 RBM 플랫폼이 새 버전의 콘텐츠를 가져오고 캐시를 새로고침하도록 강제할 수 있습니다. |
ContentInfo
콘텐츠 정보가 포함된 메시지입니다.
JSON 표현 |
---|
{ "fileUrl": string, "thumbnailUrl": string, "forceRefresh": boolean } |
필드 | |
---|---|
fileUrl |
공개적으로 연결 가능한 파일의 URL입니다. RBM 플랫폼은 플랫폼이 파일을 가져올 때 HTTP 헤더의 content-type 필드에서 파일의 MIME 유형을 확인합니다. URL의 HTTP 응답에 content-type 필드가 있어야 하며 정확해야 합니다. 권장되는 최대 파일 크기는 100MB입니다. |
thumbnailUrl |
(선택사항, 이미지 및 동영상 파일에만 해당) 공개적으로 연결할 수 있는 썸네일 URL입니다. 최대 크기는 100KB입니다. 썸네일 URL을 제공하지 않으면 RBM 플랫폼은 사용자 기기에서 파일을 다운로드할 때까지 빈 자리표시자 썸네일을 표시합니다. 사용자의 설정에 따라 파일이 자동으로 다운로드되지 않을 수 있으며 사용자가 다운로드 버튼을 탭해야 할 수 있습니다. |
forceRefresh |
설정되면 RBM 플랫폼은 지정된 URL에서 파일과 썸네일을 가져옵니다. 이는 플랫폼이 파일 (또는 썸네일) 사본을 캐시한 경우에도 마찬가지입니다. |
Media.Height
미디어 높이
열거형 | |
---|---|
HEIGHT_UNSPECIFIED |
지정되지 않음 |
SHORT |
112DP |
MEDIUM |
168DP |
TALL |
264DP 카드 너비가 작게 설정된 경우 리치 카드 캐러셀에 사용할 수 없습니다. |
추천
리치 카드 또는 추천 칩 목록에 포함된 추천 답장 또는 추천 작업입니다.
JSON 표현 |
---|
{ // Union field |
필드 | |
---|---|
통합 필드 option . 추천 답장 또는 추천 작업 option 은 다음 중 하나여야 합니다. |
|
reply |
사용자는 추천 답장을 탭하여 텍스트 답장을 상담사에게 다시 보낼 수 있습니다. |
action |
사용자는 추천 작업을 탭하여 기기에서 상응하는 네이티브 작업을 시작할 수 있습니다. |
SuggestedReply
탭하면 상담사에게 문자 메시지 답장을 보냅니다.
JSON 표현 |
---|
{ "text": string, "postbackData": string } |
필드 | |
---|---|
text |
추천 답장에 표시되고 사용자가 탭하면 상담사에게 다시 전송되는 텍스트입니다. 최대 25자(영문 기준)가 허용됩니다. |
postbackData |
사용자가 추천 답변을 탭할 때 에이전트가 사용자 이벤트에서 수신하는 base64로 인코딩된 페이로드입니다. |
SuggestedAction
탭하면 기기에서 상응하는 네이티브 작업이 시작됩니다.
JSON 표현 |
---|
{ "text": string, "postbackData": string, "fallbackUrl": string, // Union field |
필드 | |
---|---|
text |
추천 작업에 표시되는 텍스트입니다. 최대 25자(영문 기준)가 허용됩니다. |
postbackData |
사용자가 추천 작업을 탭하면 발생하는 사용자 이벤트에서 상담사에게 전송될 페이로드 (base64 인코딩)입니다. |
fallbackUrl |
(선택사항) 클라이언트가 추천 작업을 지원하지 않는 경우에 사용할 대체 URL입니다. 대체 URL은 새 브라우저 창에서 열립니다. |
통합 필드 action . 사용자가 추천 작업 action 을 탭할 때 기기에서 시작되는 네이티브 작업은 다음 중 하나여야 합니다. |
|
dialAction |
상담사가 지정한 전화번호가 입력된 상태로 사용자의 기본 다이얼러 앱을 엽니다. |
viewLocationAction |
사용자의 기본 지도 앱을 열고 상담사가 지정한 위치를 선택하거나 상담사가 지정한 쿼리에 따라 사용자의 위치를 검색합니다. |
createCalendarEventAction |
사용자의 기본 캘린더 앱을 열고 상담사가 지정한 이벤트 데이터가 미리 채워진 새 캘린더 일정 흐름을 시작합니다. |
openUrlAction |
지정된 URL로 사용자의 기본 웹브라우저 앱을 엽니다. 사용자가 URL의 기본 핸들러로 등록된 앱을 설치했다면 이 앱이 대신 열리고 추천 작업 UI에 아이콘이 사용됩니다. |
shareLocationAction |
사용자가 상담사에게 보낼 위치를 선택할 수 있도록 RCS 앱의 위치 선택기를 엽니다. |
DialAction
상담사가 지정한 전화번호가 입력된 상태로 사용자의 기본 다이얼러 앱을 엽니다.
JSON 표현 |
---|
{ "phoneNumber": string } |
필드 | |
---|---|
phoneNumber |
E.164 형식의 전화번호입니다(예: +12223334444). |
ViewLocationAction
사용자의 기본 지도 앱을 열고 상담사가 지정한 위치를 선택하거나 상담사가 지정한 쿼리에 따라 사용자의 위치를 검색합니다.
JSON 표현 |
---|
{
"latLong": {
object ( |
필드 | |
---|---|
latLong |
(선택사항) 지정된 위치의 위도 및 경도입니다. |
label |
(선택사항) latLong에 드롭된 핀의 라벨입니다. |
query |
(선택사항, Android 메시지 클라이언트에서만 지원됨) 에이전트는 latLong과 라벨 (선택사항)을 지정하는 대신 쿼리 문자열을 지정할 수 있습니다. 검색 기능을 지원하는 기본 지도 앱 (Google 지도 포함)의 경우, 이 추천 작업을 탭하면 사용자의 현재 위치를 중심으로 위치 검색이 실행됩니다. 쿼리가 충분히 구체적이면 상담사는 쿼리를 사용하여 세계 어느 곳이든 선택할 수 있습니다. 예를 들어 쿼리 문자열을 'Growing Tree Bank'로 설정하면 사용자 근처의 모든 Growing Tree Bank 위치가 표시됩니다. 쿼리 문자열을 '1600 Amphitheater Parkway, Mountain View, CA 94043'으로 설정하면 사용자의 위치와 관계없이 해당 주소가 선택됩니다. |
LatLng
위도/경도 쌍을 나타내는 객체로 위도(도)와 경도(도)를 나타내는 double의 쌍으로 표현됩니다. 달리 명시되지 않는 한 이 객체는 WGS84 표준을 준수해야 합니다. 값은 정규화된 범위 내에 있어야 합니다.
JSON 표현 |
---|
{ "latitude": number, "longitude": number } |
필드 | |
---|---|
latitude |
위도입니다. 범위는 [-90.0, +90.0]입니다. |
longitude |
경도입니다. 범위는 [-180.0, +180.0]여야 합니다. |
CreateCalendarEventAction
사용자의 기본 캘린더 앱을 열고 상담사가 지정한 이벤트 데이터가 미리 채워진 새 캘린더 일정 흐름을 시작합니다.
JSON 표현 |
---|
{ "startTime": string, "endTime": string, "title": string, "description": string } |
필드 | |
---|---|
startTime |
일정 시작 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
endTime |
일정 종료 시간입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
title |
일정 제목입니다. |
description |
일정 설명 |
OpenUrlAction
사용자의 기본 웹브라우저 앱을 지정된 URL로 엽니다. 사용자가 URL의 기본 핸들러로 등록된 앱을 설치했다면 이 앱이 대신 열리고 추천 작업 UI에 아이콘이 사용됩니다.
JSON 표현 |
---|
{ "url": string } |
필드 | |
---|---|
url |
URL |
StandaloneCard
독립형 카드
JSON 표현 |
---|
{ "cardOrientation": enum ( |
필드 | |
---|---|
cardOrientation |
카드의 방향입니다. |
thumbnailImageAlignment |
가로 레이아웃이 있는 독립형 카드의 이미지 미리보기 정렬 |
cardContent |
카드 콘텐츠 |
StandaloneCard.CardOrientation
카드의 방향입니다.
열거형 | |
---|---|
CARD_ORIENTATION_UNSPECIFIED |
지정되지 않음 |
HORIZONTAL |
가로 레이아웃 가로 리치 카드의 |
VERTICAL |
세로 레이아웃 |
StandaloneCard.ThumbnailImageAlignment
가로 레이아웃이 있는 독립형 카드의 이미지 미리보기 정렬
열거형 | |
---|---|
THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED |
지정되지 않음 |
LEFT |
파일 미리보기가 왼쪽 정렬됩니다. |
RIGHT |
파일 미리보기가 오른쪽 정렬됩니다. |
방법 |
|
---|---|
|
에이전트에서 사용자에게 메시지를 전송합니다. |
|
전송되었지만 아직 전송되지 않은 에이전트 메시지를 취소합니다. |