REST Resource: phones.agentMessages

리소스: AgentMessage

상담사가 사용자에게 보낸 메시지입니다.

JSON 표현
{
  "name": string,
  "sendTime": string,
  "contentMessage": {
    object (AgentContentMessage)
  },

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
}
필드
name

string

이 필드는 RBM 플랫폼에서 설정합니다. 상담사 메시지를 작성할 때는 포함하지 마세요. 이 필드는 'phones/{E.164}/agentMessages/{messageId}'를 확인합니다. 여기서 {E.164}는 E.164 형식의 사용자 전화번호이고 {messageId}는 상담사가 할당한 상담사 메시지 ID입니다.

sendTime

string (Timestamp format)

이 필드는 RBM 플랫폼에서 설정합니다. 상담사 메시지를 작성할 때는 포함하지 마세요. 이 필드는 메시지가 사용자에게 전송된 시간을 확인합니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

contentMessage

object (AgentContentMessage)

상담사 메시지의 콘텐츠입니다.

통합 필드 expiration.

expiration는 다음 중 하나여야 합니다.

expireTime

string (Timestamp format)

선택사항입니다. 이 리소스가 만료된 것으로 간주되는 시간의 타임스탬프(UTC)입니다. 이 값은 설정되어 있거나 TTL 필드가 설정된 경우 출력에 제공됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

ttl

string (Duration format)

선택사항입니다. 입력 전용입니다. 메시지가 자동으로 취소되기까지의 기간입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

AgentContentMessage

상담사가 사용자에게 보낸 메시지의 내용입니다.

JSON 표현
{
  "suggestions": [
    {
      object (Suggestion)
    }
  ],

  // Union field content can be only one of the following:
  "text": string,
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "richCard": {
    object (RichCard)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
필드
suggestions[]

object (Suggestion)

연결된 상담사 메시지 뒤에 추천 칩 목록으로 표시되는 추천 답장 및 추천 작업 목록입니다. 추천은 최대 11개까지 표시됩니다.

칩은 연결된 상담사 메시지가 대화 내에서 가장 최근 메시지인 경우에만 표시됩니다(상담사 메시지 및 사용자 메시지 모두 포함). 사용자는 추천 답장을 탭하여 상담사에게 텍스트 답장을 다시 보낼 수 있고 추천 작업을 탭하여 기기에서 네이티브 작업을 시작할 수 있습니다. 추천은 최대 11개까지 표시됩니다.

통합 필드 content. 상담사 메시지 content의 콘텐츠는 다음 중 하나여야 합니다.
text

string

UTF-8로 인코딩된 텍스트입니다. 최대 3,072자(영문 기준)

fileName
(deprecated)

string

파일의 고유한 이름입니다. RBM 플랫폼은 에이전트가 파일을 업로드하면 파일 이름을 반환합니다. 아래의 uploadedRbmFile로 대체되었습니다.

uploadedRbmFile

object (UploadedRbmFile)

RBM 서버에 업로드되고 서버에서 제공된 파일 및 썸네일의 식별자를 포함합니다.

richCard

object (RichCard)

독립형 리치 카드

contentInfo

object (ContentInfo)

파일의 URL 및 파일 썸네일의 URL을 포함한 파일 관련 정보입니다.

RBM 플랫폼은 캐시에서 콘텐츠를 제공하지만 에이전트는 RBM 플랫폼에 콘텐츠의 새 버전을 가져와 캐시를 새로고침하도록 강제할 수 있습니다.

UploadedRbmFile

파일 및 썸네일 정보가 포함된 메시지

JSON 표현
{
  "fileName": string,
  "thumbnailName": string
}
필드
fileName

string

파일이 업로드될 때 RBM 플랫폼에서 반환한 파일 이름입니다.

thumbnailName

string

썸네일이 업로드될 때 RBM 플랫폼에서 반환한 썸네일의 이름입니다.

RichCard

상담사가 사용자에게 전송하는 독립형 리치 카드 또는 리치 카드 캐러셀입니다.

JSON 표현
{

  // Union field card can be only one of the following:
  "carouselCard": {
    object (CarouselCard)
  },
  "standaloneCard": {
    object (StandaloneCard)
  }
  // End of list of possible types for union field card.
}
필드
통합 필드 card. 독립형 카드 또는 카드 캐러셀입니다. card은 다음 중 하나여야 합니다.
carouselCard

object (CarouselCard)

카드 캐러셀

standaloneCard

object (StandaloneCard)

독립형 카드입니다.

CarouselCard

카드 캐러셀

JSON 표현
{
  "cardWidth": enum (CarouselCard.CardWidth),
  "cardContents": [
    {
      object (CardContent)
    }
  ]
}
필드
cardWidth

enum (CarouselCard.CardWidth)

캐러셀에 있는 카드의 너비입니다.

cardContents[]

object (CardContent)

캐러셀의 각 카드에 대한 콘텐츠 목록입니다. 캐러셀은 카드를 2~10개까지 포함할 수 있습니다.

CarouselCard.CardWidth

캐러셀에 있는 카드의 너비입니다.

열거형
CARD_WIDTH_UNSPECIFIED 지정되지 않음
SMALL 120DP 세로 모드 미디어는 사용할 수 없습니다.
MEDIUM 232DP

CardContent

카드 콘텐츠

JSON 표현
{
  "title": string,
  "description": string,
  "media": {
    object (Media)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ]
}
필드
title

string

(선택사항) 카드 제목입니다. 최대 200자(영문 기준)

description

string

(선택사항) 카드에 대한 설명입니다. 최대 2,000자(영문 기준)

media

object (Media)

(선택사항) 카드에 포함할 미디어(이미지, GIF, 동영상)

suggestions[]

object (Suggestion)

(선택사항) 카드에 포함할 추천 목록입니다. 추천은 최대 10개까지 표시됩니다.

미디어

리치 카드 내의 미디어 파일입니다.

JSON 표현
{
  "height": enum (Media.Height),

  // Union field content can be only one of the following:
  "fileName": string,
  "uploadedRbmFile": {
    object (UploadedRbmFile)
  },
  "contentInfo": {
    object (ContentInfo)
  }
  // End of list of possible types for union field content.
}
필드
height

enum (Media.Height)

세로 레이아웃이 적용된 리치 카드 내 미디어의 높이입니다. 가로 레이아웃이 있는 독립형 카드의 경우 높이를 맞춤설정할 수 없으며 이 필드는 무시됩니다.

통합 필드 content. 미디어 콘텐츠 content는 다음 중 하나여야 합니다.
fileName
(deprecated)

string

파일이 업로드될 때 RBM 플랫폼에서 반환한 파일의 고유한 이름입니다. 아래의 uploadedRbmFile로 대체되었습니다.

uploadedRbmFile

object (UploadedRbmFile)

RBM 서버에 업로드되고 서버에서 제공된 파일 및 썸네일의 식별자를 포함합니다.

contentInfo

object (ContentInfo)

파일의 URL, 파일 썸네일의 URL 등 파일에 관한 정보입니다.

RBM 플랫폼은 캐시에서 콘텐츠를 제공하지만 에이전트는 RBM 플랫폼이 새 버전의 콘텐츠를 가져오고 캐시를 새로고침하도록 강제할 수 있습니다.

ContentInfo

콘텐츠 정보가 포함된 메시지입니다.

JSON 표현
{
  "fileUrl": string,
  "thumbnailUrl": string,
  "forceRefresh": boolean
}
필드
fileUrl

string

공개적으로 액세스할 수 있는 파일의 URL입니다. RBM 플랫폼은 플랫폼이 파일을 가져올 때 HTTP 헤더의 content-type 필드에서 파일의 MIME 유형을 확인합니다. content-type 필드는 URL의 HTTP 응답에 있어야 하며 정확해야 합니다. 권장 최대 파일 크기는 100MB입니다.

thumbnailUrl

string

(선택사항, 이미지, 오디오, 동영상 파일만 해당) 공개적으로 액세스할 수 있는 썸네일의 URL입니다. 최대 크기는 100KB입니다.

썸네일 URL을 제공하지 않으면 사용자의 기기에서 파일을 다운로드할 때까지 RBM 플랫폼에 빈 자리표시자 썸네일이 표시됩니다. 사용자의 설정에 따라 파일이 자동으로 다운로드되지 않을 수 있으며 사용자가 다운로드 버튼을 탭해야 할 수도 있습니다.

forceRefresh

boolean

설정된 경우, RBM 플랫폼은 지정된 URL에서 파일과 썸네일을 가져옵니다. 이는 플랫폼이 파일 (또는 썸네일 이미지)의 사본을 캐시한 경우에도 마찬가지입니다.

Media.Height

미디어 높이

열거형
HEIGHT_UNSPECIFIED 지정되지 않음
SHORT 112DP
MEDIUM 168 DP
TALL 264 DP. 카드 너비가 작게 설정된 경우 리치 카드 캐러셀에는 사용할 수 없습니다.

추천

리치 카드 또는 추천 칩 목록에 포함된 추천 답변 또는 추천 작업입니다.

JSON 표현
{

  // Union field option can be only one of the following:
  "reply": {
    object (SuggestedReply)
  },
  "action": {
    object (SuggestedAction)
  }
  // End of list of possible types for union field option.
}
필드
통합 필드 option. 추천 답장 또는 추천 작업 option은 다음 중 하나여야 합니다.
reply

object (SuggestedReply)

사용자는 추천 답장을 탭하여 상담사에게 텍스트 답장을 다시 보낼 수 있습니다.

action

object (SuggestedAction)

사용자는 추천 작업을 탭하여 기기에서 해당 네이티브 작업을 시작할 수 있습니다.

SuggestedReply

탭하면 텍스트 답장을 상담사에게 다시 전송합니다.

JSON 표현
{
  "text": string,
  "postbackData": string
}
필드
text

string

추천 답글에 표시되고 사용자가 탭하면 상담사에게 다시 전송되는 텍스트입니다. 최대 25자(영문 기준)

postbackData

string

사용자가 추천 답글을 탭할 때 상담사가 사용자 이벤트에서 수신하는 base64 인코딩된 페이로드입니다.

SuggestedAction

탭하면 기기에서 상응하는 네이티브 작업이 시작됩니다.

JSON 표현
{
  "text": string,
  "postbackData": string,
  "fallbackUrl": string,

  // Union field action can be only one of the following:
  "dialAction": {
    object (DialAction)
  },
  "viewLocationAction": {
    object (ViewLocationAction)
  },
  "createCalendarEventAction": {
    object (CreateCalendarEventAction)
  },
  "openUrlAction": {
    object (OpenUrlAction)
  },
  "shareLocationAction": {
    object (ShareLocationAction)
  },
  "composeAction": {
    object (ComposeAction)
  }
  // End of list of possible types for union field action.
}
필드
text

string

추천 작업에 표시되는 텍스트입니다. 최대 25자(영문 기준)

postbackData

string

사용자가 추천 작업을 탭할 때 발생하는 사용자 이벤트에서 상담사에게 전송되는 페이로드(base64 인코딩)입니다. 최대 2,048자(영문 기준)까지 허용됩니다.

fallbackUrl

string

(선택사항) 클라이언트가 추천 작업을 지원하지 않는 경우 사용할 대체 URL입니다. 대체 URL은 새 브라우저 창에서 열립니다. RFC 3986에 정의된 유효한 URI여야 합니다. 최대 2,048자(영문 기준)까지 허용됩니다.

통합 필드 action. 사용자가 추천 작업 action를 탭할 때 기기에서 시작된 네이티브 작업은 다음 중 하나여야 합니다.
dialAction

object (DialAction)

에이전트가 지정한 전화번호가 입력된 사용자의 기본 다이얼러 앱을 엽니다.

viewLocationAction

object (ViewLocationAction)

사용자의 기본 지도 앱을 열고 상담사가 지정한 위치를 선택하거나 상담사가 지정한 검색어를 기준으로 사용자 위치 주변을 검색합니다.

createCalendarEventAction

object (CreateCalendarEventAction)

사용자의 기본 캘린더 앱을 열고 에이전트 지정 이벤트 데이터가 미리 채워진 새 캘린더 이벤트 흐름을 시작합니다.

openUrlAction

object (OpenUrlAction)

사용자의 기본 웹브라우저 앱을 특정 URL로 엽니다. 사용자에게 URL의 기본 핸들러로 등록된 앱이 설치되어 있으면 이 앱이 대신 열리고 추천 작업 UI에 아이콘이 사용됩니다.

shareLocationAction

object (ShareLocationAction)

사용자가 상담사에게 전송할 위치를 선택할 수 있도록 RCS 앱의 위치 선택 도구를 엽니다.

composeAction

object (ComposeAction)

메시지를 작성하고 챗봇으로 사전 정의된 대상으로 전송합니다.

DialAction

상담사가 지정한 전화번호가 입력된 사용자의 기본 다이얼러 앱을 엽니다.

JSON 표현
{
  "phoneNumber": string
}
필드
phoneNumber

string

E.164 형식의 전화번호입니다(예: +12223334444).

ViewLocationAction

사용자의 기본 지도 앱을 열고 에이전트가 지정한 위치를 선택하거나 에이전트가 지정한 쿼리를 통해 사용자 위치 주변을 검색합니다.

JSON 표현
{
  "latLong": {
    object (LatLng)
  },
  "label": string,
  "query": string
}
필드
latLong

object (LatLng)

(선택사항) 지정된 위치의 위도 및 경도입니다.

label

string

(선택사항) latLong에 배치된 핀의 라벨입니다.

query

string

(선택사항, Android 메시지 클라이언트에서만 지원됨) 에이전트는 latLong(및 선택적으로 라벨)을 지정하는 대신 쿼리 문자열을 지정할 수 있습니다. 검색 기능을 지원하는 기본 지도 앱(Google 지도 포함)의 경우 이 추천 작업을 탭하면 사용자의 현재 위치를 중심으로 위치 검색이 실행됩니다. 검색어가 충분히 구체적이면 상담사가 이를 사용하여 전 세계의 모든 위치를 선택할 수 있습니다.

예를 들어 쿼리 문자열을 'Growing Tree Bank'로 설정하면 사용자 주변의 모든 Growing Tree Bank 위치가 표시됩니다. 쿼리 문자열을 '1600 Amphitheater Parkway, Mountain View, CA 94043'으로 설정하면 사용자의 위치와 관계없이 해당 주소가 선택됩니다.

LatLng

위도/경도 쌍을 나타내는 객체로 위도와 경도를 나타내는 복식 쌍으로 표현됩니다. 달리 명시되지 않는 한 이 객체는 WGS84 표준을 준수해야 합니다. 값은 정규화된 범위 내에 있어야 합니다.

JSON 표현
{
  "latitude": number,
  "longitude": number
}
필드
latitude

number

위도입니다. 범위는 [-90.0, +90.0]입니다.

longitude

number

경도입니다. 범위는 [-180.0, +180.0]입니다.

CreateCalendarEventAction

사용자의 기본 캘린더 앱을 열고 상담사가 지정한 일정 데이터가 미리 입력된 새 캘린더 일정 흐름을 시작합니다.

JSON 표현
{
  "startTime": string,
  "endTime": string,
  "title": string,
  "description": string
}
필드
startTime

string (Timestamp format)

일정 시작 시간

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

endTime

string (Timestamp format)

일정 종료 시간

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

title

string

이벤트 제목 최대 100자(영문 기준)까지 허용됩니다.

description

string

이벤트 설명입니다. 최대 500자까지 입력할 수 있습니다.

OpenUrlAction

사용자의 기본 웹브라우저 앱을 지정된 URL로 엽니다. 사용자에게 URL의 기본 핸들러로 등록된 앱이 설치되어 있으면 이 앱이 대신 열리고 추천 작업 UI에 아이콘이 사용됩니다.

JSON 표현
{
  "url": string,
  "application": enum (OpenUrlApplication),
  "webviewViewMode": enum (WebviewViewMode),
  "description": string
}
필드
url

string

이 URL을 방문하십시오. RFC 3986에 정의된 유효한 URI여야 합니다. 최대 2,048자(영문 기준)까지 허용됩니다.

application

enum (OpenUrlApplication)

URL이 애플리케이션, 브라우저 또는 WebView를 엽니다. 사용자의 기기가 WebView 모드를 지원하는지 확인하려면 먼저 기능 검사를 실행합니다. 자세한 내용은 문서(https://developers.google.com/business-communications/rcs-business-messaging/guides/build/capabilities)를 참고하세요.

webviewViewMode

enum (WebviewViewMode)

WebView의 보기 모드

description

string

WebView의 접근성 설명입니다.

OpenUrlApplication

URL 열기 애플리케이션 유형

열거형
OPEN_URL_APPLICATION_UNSPECIFIED 지정하지 않으면 브라우저를 사용하여 엽니다.
BROWSER 브라우저를 사용하여 URL을 엽니다.
WEBVIEW 통합된 웹 보기 창에서 URL 열기

WebviewViewMode

WebView의 보기 모드 유형입니다.

열거형
WEBVIEW_VIEW_MODE_UNSPECIFIED 지정되지 않음 WebView를 사용하려면 뷰 모드를 지정해야 합니다.
FULL 상태 표시줄에 라벨이 지정된 챗봇 대화가 포함된 전체 화면 오버레이가 필요합니다.
HALF 절반 화면 오버레이가 필요합니다.
TALL 3/4의 화면 오버레이가 필요합니다.

ShareLocationAction

이 유형에는 필드가 없습니다.

사용자가 상담사에게 다시 보낼 위치를 선택할 수 있도록 RCS 앱의 위치 선택 도구를 엽니다.

ComposeAction

챗봇에서 사전 정의한 대상에 메시지를 작성하고 전송합니다. 사용자 기기에서 이 작업을 지원하는지 확인하려면 먼저 기능 검사를 실행하세요. 자세한 내용은 다음 문서를 참고하세요.https://developers.google.com/business-communications/rcs-business-messaging/guides/build/capabilities

JSON 표현
{

  // Union field action can be only one of the following:
  "composeTextMessage": {
    object (ComposeAction.ComposeTextMessage)
  },
  "composeRecordingMessage": {
    object (ComposeAction.ComposeRecordingMessage)
  }
  // End of list of possible types for union field action.
}
필드

통합 필드 action.

action는 다음 중 하나여야 합니다.

composeTextMessage

object (ComposeAction.ComposeTextMessage)

문자 메시지를 작성하고 전송합니다.

composeRecordingMessage

object (ComposeAction.ComposeRecordingMessage)

음성 또는 동영상 메시지 녹음 및 전송을 시작합니다.

ComposeAction.ComposeTextMessage

문자 메시지를 작성하고 전송합니다.

JSON 표현
{
  "phoneNumber": string,
  "text": string
}
필드
phoneNumber

string

챗봇이 미리 입력된 대상 전화번호입니다.

text

string

초안을 클릭하면 메시지 보내기 텍스트 필드로 이동합니다.

ComposeAction.ComposeRecordingMessage

오디오 또는 동영상 메시지의 녹음과 전송을 시작합니다.

JSON 표현
{
  "phoneNumber": string,
  "type": enum (ComposeRecordingActionType)
}
필드
phoneNumber

string

챗봇에서 미리 입력한 대상 전화번호입니다.

type

enum (ComposeRecordingActionType)

녹음 작업의 유형입니다.

ComposeRecordingActionType

녹음 작성 작업의 유형입니다.

열거형
COMPOSE_RECORDING_ACTION_TYPE_UNSPECIFIED 지정되지 않음
ACTION_TYPE_AUDIO 오디오 유형입니다.
ACTION_TYPE_VIDEO 동영상 유형입니다.

StandaloneCard

독립형 카드

JSON 표현
{
  "cardOrientation": enum (StandaloneCard.CardOrientation),
  "thumbnailImageAlignment": enum (StandaloneCard.ThumbnailImageAlignment),
  "cardContent": {
    object (CardContent)
  }
}
필드
cardOrientation

enum (StandaloneCard.CardOrientation)

카드의 방향입니다.

thumbnailImageAlignment

enum (StandaloneCard.ThumbnailImageAlignment)

가로 레이아웃이 있는 독립형 카드의 이미지 미리보기 정렬

cardContent

object (CardContent)

카드 콘텐츠

StandaloneCard.CardOrientation

카드의 방향입니다.

열거형
CARD_ORIENTATION_UNSPECIFIED 지정되지 않음
HORIZONTAL

가로 레이아웃

가로형 리치 카드의 object(CardContent)media 필드가 포함된 경우 최소한 title, description 또는 suggestions[] 필드도 포함해야 합니다.

VERTICAL 세로 레이아웃

StandaloneCard.ThumbnailImageAlignment

가로 레이아웃이 적용된 독립형 카드의 이미지 미리보기 정렬

열거형
THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED 지정되지 않음
LEFT 파일 미리보기는 왼쪽 정렬됩니다.
RIGHT 파일 미리보기가 오른쪽 정렬됩니다.

메서드

create

상담사가 사용자에게 메시지를 보냅니다.

delete

전송되었지만 아직 전송되지 않은 상담사 메시지를 취소합니다.