Method: projects.sendInteraction

대화를 한 번 재생합니다.

HTTP 요청

POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction

URL은 gRPC 트랜스코딩 문법을 사용합니다.

경로 매개변수

매개변수
project

string

필수 항목입니다. 테스트 중인 프로젝트로, 프로젝트 ID로 표시됩니다. 형식: projects/{project}

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

JSON 표현
{
  "input": {
    object (UserInput)
  },
  "deviceProperties": {
    object (DeviceProperties)
  },
  "conversationToken": string
}
필드
input

object (UserInput)

필수 항목입니다. 사용자가 입력한 입력

deviceProperties

object (DeviceProperties)

필수 항목입니다. 작업과 상호작용하는 데 사용되는 기기의 속성입니다.

conversationToken

string

이전 상호작용의 SendInteractionResponse에서 수신 시 전달되어야 하는 불투명 토큰입니다. 테스트 세션의 첫 번째 상호작용으로 새 대화를 시작하거나 이전 대화를 포기하고 새 대화를 시작하기 위해 이 설정을 설정하지 않을 수 있습니다.

응답 본문

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

여러 번의 대화에 대한 응답입니다.

JSON 표현
{
  "output": {
    object (Output)
  },
  "diagnostics": {
    object (Diagnostics)
  },
  "conversationToken": string
}
필드
output

object (Output)

사용자에게 제공된 출력

diagnostics

object (Diagnostics)

요청이 처리된 방법을 설명하는 진단 정보입니다.

conversationToken

string

동일한 대화를 계속하기 위해 다음 RPC 호출에서 SendInteractionRequest에 설정되는 불투명 토큰입니다.

UserInput

대화 라운드에서 제공된 사용자 입력입니다.

JSON 표현
{
  "query": string,
  "type": enum (InputType)
}
필드
query

string

사용자가 보낸 입력의 콘텐츠입니다.

type

enum (InputType)

입력 유형입니다.

InputType

입력 소스, 입력된 쿼리 또는 음성 쿼리를 나타냅니다.

열거형
INPUT_TYPE_UNSPECIFIED 입력 소스가 지정되지 않았습니다.
TOUCH GUI 상호작용에서 쿼리합니다.
VOICE 음성 쿼리
KEYBOARD 입력된 쿼리
URL 작업이 URL 링크로 트리거되었습니다.

기기 속성

대화와 관련된 기기의 속성입니다.

JSON 표현
{
  "surface": enum (Surface),
  "location": {
    object (Location)
  },
  "locale": string,
  "timeZone": string
}
필드
surface

enum (Surface)

작업과 상호작용하는 데 사용되는 노출 영역입니다.

location

object (Location)

기기 위치(예: 위도, 경도, 형식이 지정된 주소)

locale

string

기기에 설정된 언어입니다. 형식은 BCP 47(https://tools.ietf.org/html/bcp47)을 따라야 합니다. 예: en, en-US, es-419(추가 예시: https://tools.ietf.org/html/bcp47#appendix-A).

timeZone

string

기기에 설정된 시간대입니다. 형식은 IANA 시간대 데이터베이스(예: 'America/New_York': https://www.iana.org/time-zones

Surface

작업과 상호작용하는 데 사용할 수 있는 노출 영역입니다. 향후 더 많은 값이 포함될 수 있습니다.

열거형
SURFACE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
SPEAKER 스피커 (예: Google Home)
PHONE 휴대전화,
ALLO Allo 채팅
SMART_DISPLAY 스마트 디스플레이 기기
KAI_OS KaiOS

위치

위치를 나타내는 컨테이너입니다.

JSON 표현
{
  "coordinates": {
    object (LatLng)
  },
  "formattedAddress": string,
  "zipCode": string,
  "city": string
}
필드
coordinates

object (LatLng)

지리적 좌표입니다. [DEVICE_PRECISE_LOCATION] 필요 [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한을 사용할 수 있습니다

formattedAddress

string

표시 주소(예: '1600 Amphitheatre Pkwy, Mountain View, CA 94043'. [DEVICE_PRECISE_LOCATION] 필요 [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 권한을 사용할 수 있습니다

zipCode

string

우편번호. [DEVICE_PRECISE_LOCATION] 필요 [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 또는 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 권한이 있는지 확인합니다

city

string

시/군/구. [DEVICE_PRECISE_LOCATION] 필요 [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] 또는 [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION] 권한이 있는지 확인합니다

LatLng

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

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

number

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

longitude

number

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

출력

대화 라운드에서 사용자에게 표시되는 출력입니다.

JSON 표현
{
  "text": string,
  "speech": [
    string
  ],
  "canvas": {
    object (Canvas)
  },
  "actionsBuilderPrompt": {
    object (Prompt)
  }
}
필드
text

string

일반 문자열로 사용자에게 전송되는 음성 응답입니다.

speech[]

string

작업에서 생성한 음성 콘텐츠입니다. 여기에는 SSML과 같은 마크업 요소가 포함될 수 있습니다.

canvas

object (Canvas)

Interactive Canvas 콘텐츠

actionsBuilderPrompt

object (Prompt)

대화 라운드 종료 시 프롬프트의 상태입니다. 프롬프트에 관한 추가 정보: https://developers.google.com/assistant/conversational/prompts

캔버스

사용자에게 전송될 Interactive Canvas 응답을 나타냅니다. 이는 'firstSimple' 필드가 대화형 캔버스 응답을 표시할 뿐만 아니라 사용자에게 말할 수 있습니다. 응답의 최대 크기는 50,000바이트입니다.

JSON 표현
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "enableFullScreen": boolean
}
필드
url

string

로드할 대화형 캔버스 웹 앱의 URL입니다. 설정하지 않으면 현재 활성 캔버스의 URL이 재사용됩니다.

data[]

value (Value format)

선택사항입니다. 몰입형 환경 웹페이지에 이벤트로 전달되는 JSON 데이터입니다. '재정의' 포함된 프롬프트의 필드가 'false'입니다. 이 캔버스 프롬프트에 정의된 데이터 값은 이전 캔버스 프롬프트에 정의된 데이터 값 뒤에 추가됩니다.

suppressMic

boolean

선택사항입니다. 기본값은 false입니다.

enableFullScreen

boolean

true인 경우 캔버스 애플리케이션이 전체 화면을 차지하고 상단에 헤더가 없습니다. 또한 작업의 표시 이름, 개발자 이름, 작업 종료 안내가 포함된 토스트 메시지가 로드 화면에 표시됩니다. 기본값: false.

프롬프트

사용자에 대한 응답을 나타냅니다.

JSON 표현
{
  "append": boolean,
  "override": boolean,
  "firstSimple": {
    object (Simple)
  },
  "content": {
    object (Content)
  },
  "lastSimple": {
    object (Simple)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (Link)
  },
  "canvas": {
    object (Canvas)
  }
}
필드
append
(deprecated)

boolean

선택사항입니다. 이 메시지가 이전에 정의된 메시지와 병합되는 방식을 위한 모드입니다. 'false' 이전에 정의한 모든 메시지 (첫 번째와 마지막 단순함, 콘텐츠, 추천 링크, 캔버스)를 지우고 이 프롬프트에 정의된 메시지를 추가합니다. 'true' 이 프롬프트에 정의된 메시지가 이전 응답에 정의된 메시지에 추가됩니다. 이 필드를 'true'로 설정 간단한 프롬프트, 추천 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부)의 일부 필드에도 추가할 수 있습니다. 메시지에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다.

override

boolean

선택사항입니다. 이 메시지가 이전에 정의된 메시지와 병합되는 방식을 위한 모드입니다. 'true' 는 이전에 정의된 모든 메시지 (첫 번째와 마지막 단순함, 콘텐츠, 추천 링크, 캔버스)를 지우고 이 프롬프트에 정의된 메시지를 추가합니다. 'false' 이 프롬프트에 정의된 메시지를 이전 응답에 정의된 메시지에 추가합니다. 이 필드를 'false'로 유지 또한 간단한 프롬프트, 제안 프롬프트, 캔버스 프롬프트 (콘텐츠 프롬프트의 일부)의 일부 필드에 추가할 수 있습니다. 메시지에 정의된 경우 콘텐츠 및 링크 메시지를 항상 덮어씁니다. 기본값은 'false'입니다.

firstSimple

object (Simple)

선택사항입니다. 첫 번째 음성 및 텍스트 전용 응답입니다.

content

object (Content)

선택사항입니다. 사용자에게 표시할 카드, 목록, 미디어와 같은 콘텐츠입니다.

lastSimple

object (Simple)

선택사항입니다. 마지막 음성 및 텍스트 전용 응답입니다.

suggestions[]

object (Suggestion)

선택사항입니다. 사용자에게 표시할 제안으로, 대답의 마지막 부분에 항상 표시됩니다. '재정의' 필드가 'false'인 경우 이 필드에 정의된 제목은 이전에 정의된 추천 프롬프트에 정의된 제목에 추가되고 중복 값은 삭제됩니다.

canvas

object (Canvas)

선택사항입니다. 사용자에게 전송될 Interactive Canvas 응답을 나타냅니다.

단순

사용자에게 보낼 간단한 프롬프트를 나타냅니다.

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

string

선택사항입니다. 사용자에게 말할 음성을 나타냅니다. SSML 또는 TTS(텍스트 음성 변환)일 수 있습니다. '재정의' 필드가 'true'인 경우 이 필드에 정의된 음성이 이전 단순 프롬프트의 음성을 대체합니다.

text

string

채팅 풍선에 표시할 텍스트입니다(선택사항). 지정하지 않으면 위 음성 필드의 디스플레이 렌더링이 사용됩니다. 영문 기준 640자로 제한됩니다. '재정의' 필드가 'true'인 경우 이 필드에 정의된 텍스트가 이전 단순 프롬프트의 텍스트로 대체됩니다.

콘텐츠

표시할 콘텐츠입니다.

JSON 표현
{

  // Union field content can be only one of the following:
  "card": {
    object (Card)
  },
  "image": {
    object (Image)
  },
  "table": {
    object (Table)
  },
  "media": {
    object (Media)
  },
  "canvas": {
    object (Canvas)
  },
  "collection": {
    object (Collection)
  },
  "list": {
    object (List)
  }
  // End of list of possible types for union field content.
}
필드
통합 필드 content. 콘텐츠. content은 다음 중 하나여야 합니다.
card

object (Card)

기본 카드입니다.

image

object (Image)

이미지입니다.

table

object (Table)

표 카드입니다.

media

object (Media)

재생할 미디어 세트를 나타내는 응답입니다.

canvas
(deprecated)

object (Canvas)

대화형 캔버스 환경에 사용할 응답입니다.

collection

object (Collection)

선택할 수 있는 옵션 모음을 보여주는 카드입니다.

list

object (List)

선택할 수 있는 옵션 목록이 표시된 카드입니다.

카드

일부 정보를 표시하기 위한 기본 카드입니다. 예: 이미지 및/또는 텍스트입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (Image)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (Link)
  }
}
필드
title

string

카드의 전체 제목입니다. 선택사항입니다.

subtitle

string

선택사항입니다.

text

string

카드의 본문 텍스트입니다. 서식 지정을 위한 제한된 마크다운 구문 세트를 지원합니다. 이미지가 없는 경우 필수 항목입니다.

image

object (Image)

카드의 히어로 이미지입니다. 높이는 192dp로 고정됩니다. 선택사항입니다.

imageFill

enum (ImageFill)

이미지 배경이 채워지는 방식입니다. 선택사항입니다.

button

object (Link)

버튼 선택사항입니다.

이미지

카드에 표시되는 이미지입니다.

JSON 표현
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
필드
url

string

이미지의 소스 URL입니다. 이미지는 JPG, PNG, GIF (애니메이션 및 정지)를 사용할 수 있습니다. 예를 들면 https://www.agentx.com/logo.png입니다. 필수 항목입니다.

alt

string

접근성을 위해 사용되는 이미지의 텍스트 설명입니다. 예: 스크린 리더 필수 항목입니다.

height

integer

이미지 높이(픽셀 단위)입니다. 선택사항입니다.

width

integer

이미지 너비(픽셀 단위)입니다. 선택사항입니다.

ImageFill

이미지의 표시에 영향을 줄 수 있는 이미지 표시 옵션입니다. 이미지의 가로세로 비율이 이미지 컨테이너의 가로세로 비율과 일치하지 않는 경우에 사용해야 합니다.

열거형
UNSPECIFIED 이미지 채우기가 지정되지 않았습니다.
GRAY 이미지와 이미지 컨테이너 사이의 간격을 회색 막대로 채웁니다.
WHITE 이미지와 이미지 컨테이너 사이의 간격을 흰색 막대로 채웁니다.
CROPPED 이미지의 너비와 높이가 컨테이너 크기와 일치하거나 이를 초과하도록 이미지가 조정됩니다. 이렇게 하면 조정된 이미지 높이가 컨테이너 높이보다 크면 이미지의 상단과 하단이 잘리고, 조정된 이미지의 너비가 컨테이너 너비보다 크면 이미지의 왼쪽과 오른쪽이 잘릴 수 있습니다. 이는 '확대/축소 모드'와 유사합니다. 4:3 동영상을 재생할 때 와이드스크린 TV에서 재생됩니다.

OpenUrl

사용자가 링크를 열 때 수행되는 작업입니다.

JSON 표현
{
  "url": string,
  "hint": enum (UrlHint)
}
필드
url

string

URL 필드: 다음 중 하나가 될 수 있음: - 앱에 연결된 앱 또는 웹페이지를 열기 위한 http/https URL

hint

enum (UrlHint)

URL 유형에 대한 힌트를 나타냅니다.

UrlHint

다양한 유형의 URL 힌트

열거형
AMP AMP 콘텐츠로 직접 연결되는 URL 또는 를 통해 AMP 콘텐츠를 참조하는 표준 URL입니다.

텍스트 표를 표시하는 표 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (Link)
  }
}
필드
title

string

테이블의 전체 제목입니다. 선택사항이지만 부제목이 설정된 경우 설정해야 합니다.

subtitle

string

표의 부제목입니다. 선택사항입니다.

image

object (Image)

테이블과 연결된 이미지입니다. 선택사항입니다.

columns[]

object (TableColumn)

열 헤더 및 정렬

rows[]

object (TableRow)

테이블의 행 데이터입니다. 처음 3개 행은 항상 표시되지만 특정 표면에서는 다른 행이 잘릴 수 있습니다. 시뮬레이터로 테스트하여 지정된 표면에 어떤 행이 표시될지 확인하세요. WEB_BROWSER 기능을 지원하는 노출 영역에서 더 많은 데이터가 포함된 웹페이지로 사용자를 안내할 수 있습니다.

button

object (Link)

버튼

TableColumn

테이블의 열을 설명합니다.

JSON 표현
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
필드
header

string

열의 헤더 텍스트입니다.

align

enum (HorizontalAlignment)

콘텐츠 열의 가로 정렬 지정하지 않으면 콘텐츠가 맨 앞 가장자리에 정렬됩니다.

HorizontalAlignment

셀 내 콘텐츠의 정렬입니다.

열거형
UNSPECIFIED 가로 정렬이 지정되지 않았습니다.
LEADING 셀의 선행 가장자리입니다. 이는 기본값입니다.
CENTER 콘텐츠가 열 중앙에 정렬됩니다.
TRAILING 콘텐츠는 열의 후행 가장자리에 맞춰 정렬됩니다.

TableRow

테이블의 행을 설명합니다.

JSON 표현
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
필드
cells[]

object (TableCell)

이 행의 셀입니다. 처음 3개의 셀은 표시가 보장되지만 특정 표면에서 다른 셀이 잘릴 수 있습니다. 시뮬레이터로 테스트하여 지정된 표면에 어떤 셀을 표시할지 확인하세요.

divider

boolean

각 행 뒤에 구분선이 있어야 하는지 여부를 나타냅니다.

TableCell

행의 셀을 설명합니다.

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

string

셀의 텍스트 콘텐츠입니다.

미디어

하나의 미디어 객체를 나타냅니다. 이름, 설명, URL 등의 미디어 정보가 포함됩니다.

JSON 표현
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ]
}
필드
mediaType

enum (MediaType)

미디어 유형입니다.

startOffset

string (Duration format)

첫 번째 미디어 객체의 시작 오프셋입니다.

초 단위 기간으로, 소수점 아래 9자리까지 지정 가능하며 's'로 끝납니다(예: "3.5s").

optionalMediaControls[]

enum (OptionalMediaControls)

이 미디어 응답 세션에서 지원할 수 있는 미디어 컨트롤 유형입니다(선택사항). 설정된 경우 특정 미디어 이벤트가 발생할 때 서드 파티로 요청이 이루어집니다. 설정하지 않으면 3p가 두 가지 기본 컨트롤 유형인 FINISHED와 FAILED를 처리해야 합니다.

mediaObjects[]

object (MediaObject)

미디어 객체 목록

MediaType

이 응답의 미디어 유형입니다.

열거형
MEDIA_TYPE_UNSPECIFIED 미디어 유형이 지정되지 않았습니다.
AUDIO 오디오 파일입니다.
MEDIA_STATUS_ACK 미디어 상태 보고서 확인에 대한 응답입니다.

OptionalMediaControls

미디어 응답이 지원할 수 있는 선택적 미디어 컨트롤 유형

열거형
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED 지정되지 않은 값
PAUSED 이벤트가 일시중지되었습니다. 사용자가 미디어를 일시중지할 때 트리거됩니다.
STOPPED 일정을 중지했습니다. 사용자가 미디어 재생 중에 서드 파티 세션을 종료할 때 트리거됩니다.

MediaObject

단일 미디어 객체를 나타냅니다.

JSON 표현
{
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object (MediaImage)
  }
}
필드
name

string

이 미디어 객체의 이름입니다.

description

string

이 미디어 객체에 대한 설명입니다.

url

string

미디어 콘텐츠를 가리키는 URL입니다.

image

object (MediaImage)

미디어 카드와 함께 표시할 이미지입니다.

MediaImage

미디어 카드와 함께 표시할 이미지입니다.

JSON 표현
{

  // Union field image can be only one of the following:
  "large": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
필드
통합 필드 image. 이미지입니다. image은 다음 중 하나여야 합니다.
large

object (Image)

앨범 표지와 같은 큰 이미지

icon

object (Image)

제목 오른쪽에 표시된 작은 이미지 아이콘 36x36dp로 크기가 조정됩니다.

컬렉션

선택할 옵션 모음을 표시하는 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
필드
title

string

컬렉션의 제목입니다. 선택사항입니다.

subtitle

string

컬렉션의 부제목입니다. 선택사항입니다.

items[]

object (CollectionItem)

최소: 2 최대: 10

imageFill

enum (ImageFill)

컬렉션 항목의 이미지 배경이 채워지는 방식입니다. 선택사항입니다.

CollectionItem

컬렉션의 항목

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

string

필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다.

목록

선택할 옵션 목록을 표시하는 카드입니다.

JSON 표현
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
필드
title

string

목록의 제목입니다. 선택사항입니다.

subtitle

string

목록의 부제목입니다. 선택사항입니다.

items[]

object (ListItem)

최소: 2 최대: 30

ListItem

목록의 항목

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

string

필수 항목입니다. 연결된 Type의 항목 키 이름과 일치하는 NLU 키입니다.

추천

사용자에게 표시할 추천을 입력합니다.

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

string

필수 항목입니다. 추천 검색어 칩에 표시되는 텍스트입니다. 이 텍스트를 탭하면 사용자가 입력한 것처럼 대화에 그대로 다시 게시됩니다. 각 제목은 추천 검색어 칩 세트 내에서 고유해야 합니다. 최대 25자(영문 기준)

진단

대화와 관련된 진단 정보입니다.

JSON 표현
{
  "actionsBuilderEvents": [
    {
      object (ExecutionEvent)
    }
  ]
}
필드
actionsBuilderEvents[]

object (ExecutionEvent)

Actions Builder 상호작용 모델의 단계 전반에 걸친 대화 처리에 대한 세부정보가 있는 이벤트 목록입니다. Actions Builder 및 Actions SDK 앱만 해당

ExecutionEvent

Actions Builder 대화 요청을 처리하는 동안 발생한 실행 이벤트에 대한 정보가 포함됩니다. 대화 요청과 관련된 단계에 관한 개요는 https://developers.google.com/assistant/conversational/actions를 참고하세요.

JSON 표현
{
  "eventTime": string,
  "executionState": {
    object (ExecutionState)
  },
  "status": {
    object (Status)
  },
  "warningMessages": [
    string
  ],

  // Union field EventData can be only one of the following:
  "userInput": {
    object (UserConversationInput)
  },
  "intentMatch": {
    object (IntentMatch)
  },
  "conditionsEvaluated": {
    object (ConditionsEvaluated)
  },
  "onSceneEnter": {
    object (OnSceneEnter)
  },
  "webhookRequest": {
    object (WebhookRequest)
  },
  "webhookResponse": {
    object (WebhookResponse)
  },
  "webhookInitiatedTransition": {
    object (WebhookInitiatedTransition)
  },
  "slotMatch": {
    object (SlotMatch)
  },
  "slotRequested": {
    object (SlotRequested)
  },
  "slotValidated": {
    object (SlotValidated)
  },
  "formFilled": {
    object (FormFilled)
  },
  "waitingUserInput": {
    object (WaitingForUserInput)
  },
  "endConversation": {
    object (EndConversation)
  }
  // End of list of possible types for union field EventData.
}
필드
eventTime

string (Timestamp format)

이벤트가 발생한 타임스탬프입니다.

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

executionState

object (ExecutionState)

이 이벤트 동안의 실행 상태입니다.

status

object (Status)

특정 실행 단계의 결과 상태.

warningMessages[]

string

이 이벤트의 실행 중에 생성된 경고의 목록입니다. 경고는 대화를 요청하는 동안 발견한 개발자에게 도움이 되는 팁입니다. 이러한 메서드는 일반적으로 중요하지 않으며 요청 실행을 중단하지 않습니다. 예를 들어 웹훅이 존재하지 않는 커스텀 유형을 재정의하려고 하면 경고가 생성될 수 있습니다. 오류는 실패 상태 코드로 보고되지만 상태가 정상인 경우에도 경고가 표시될 수 있습니다.

통합 필드 EventData. 대화 라운드를 처리하는 데 관련될 수 있는 다양한 이벤트에 대한 자세한 정보입니다. 여기에 설정된 필드는 이 이벤트의 유형을 정의합니다. EventData은 다음 중 하나여야 합니다.
userInput

object (UserConversationInput)

사용자 입력 처리 이벤트입니다.

intentMatch

object (IntentMatch)

인텐트 일치 이벤트

conditionsEvaluated

object (ConditionsEvaluated)

조건 평가 이벤트입니다.

onSceneEnter

object (OnSceneEnter)

OnSceneEnter 실행 이벤트.

webhookRequest

object (WebhookRequest)

웹훅 요청 전달 이벤트입니다.

webhookResponse

object (WebhookResponse)

웹훅 응답 수신 이벤트입니다.

webhookInitiatedTransition

object (WebhookInitiatedTransition)

웹훅에서 시작된 전환 이벤트입니다.

slotMatch

object (SlotMatch)

슬롯 일치 이벤트입니다.

slotRequested

object (SlotRequested)

슬롯 요청 이벤트입니다.

slotValidated

object (SlotValidated)

슬롯 유효성 검사 이벤트.

formFilled

object (FormFilled)

양식 채우기 이벤트.

waitingUserInput

object (WaitingForUserInput)

사용자 입력을 기다리는 중 이벤트입니다.

endConversation

object (EndConversation)

대화 종료 이벤트입니다.

ExecutionState

실행의 현재 상태입니다.

JSON 표현
{
  "currentSceneId": string,
  "sessionStorage": {
    object
  },
  "slots": {
    object (Slots)
  },
  "promptQueue": [
    {
      object (Prompt)
    }
  ],
  "userStorage": {
    object
  },
  "householdStorage": {
    object
  }
}
필드
currentSceneId

string

현재 활성화된 장면의 ID입니다.

sessionStorage

object (Struct format)

세션 스토리지의 상태: https://developers.google.com/assistant/conversational/storage-session

slots

object (Slots)

슬롯이 채워진 상태(해당하는 경우): https://developers.google.com/assistant/conversational/scenes#slot_filling

promptQueue[]

object (Prompt)

프롬프트 대기열: https://developers.google.com/assistant/conversational/prompts

userStorage

object (Struct format)

사용자 스토리지 상태: https://developers.google.com/assistant/conversational/storage-user

householdStorage

object (Struct format)

홈 스토리지 상태: https://developers.google.com/assistant/conversational/storage-home

슬롯

장면 슬롯의 현재 상태를 나타냅니다.

JSON 표현
{
  "status": enum (SlotFillingStatus),
  "slots": {
    string: {
      object (Slot)
    },
    ...
  }
}
필드
status

enum (SlotFillingStatus)

슬롯 채우기의 현재 상태입니다.

slots

map (key: string, value: object (Slot))

현재 장면과 연결된 슬롯입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

SlotFillingStatus

슬롯 채우기의 현재 상태를 나타냅니다.

열거형
UNSPECIFIED 사용량 필드가 채워지지 않은 경우의 대체 값입니다.
INITIALIZED 슬롯이 초기화되었지만 슬롯 채우기가 시작되지 않았습니다.
COLLECTING 슬롯 값을 수집하는 중입니다.
FINAL 모든 슬롯 값은 최종 값이며 변경할 수 없습니다.

슬롯

슬롯을 나타냅니다.

JSON 표현
{
  "mode": enum (SlotMode),
  "status": enum (SlotStatus),
  "value": value,
  "updated": boolean,
  "prompt": {
    object (Prompt)
  }
}
필드
mode

enum (SlotMode)

슬롯의 모드 (필수 또는 선택사항)입니다. 개발자가 설정할 수 있습니다.

status

enum (SlotStatus)

슬롯의 상태입니다.

value

value (Value format)

슬롯의 값입니다. 응답에서 이 값을 변경하면 슬롯 채우기의 값이 수정됩니다.

updated

boolean

슬롯 값이 마지막 턴에 수집되었는지 여부를 나타냅니다. 이 필드는 읽기 전용입니다.

prompt

object (Prompt)

선택사항입니다. 이 메시지는 필수 시간대를 채워야 할 때 사용자에게 전송됩니다. 이 프롬프트는 콘솔에 정의된 기존 프롬프트를 재정의합니다. 이 필드는 웹훅 요청에 포함되지 않습니다.

SlotMode

슬롯의 모드, 즉 슬롯 모드가 필요한지 여부를 나타냅니다.

열거형
MODE_UNSPECIFIED 사용량 필드가 채워지지 않은 경우의 대체 값입니다.
OPTIONAL 슬롯 채우기를 완료하는 데 슬롯이 필요하지 않음을 나타냅니다.
REQUIRED 슬롯 채우기를 완료하는 데 슬롯이 필요함을 나타냅니다.

SlotStatus

시간대의 상태를 나타냅니다.

열거형
SLOT_UNSPECIFIED 사용량 필드가 채워지지 않은 경우의 대체 값입니다.
EMPTY 슬롯에 값이 없음을 나타냅니다. 이 상태는 응답을 통해 수정할 수 없습니다.
INVALID 슬롯 값이 잘못되었음을 나타냅니다. 이 상태는 응답을 통해 설정할 수 있습니다.
FILLED 슬롯에 값이 있음을 나타냅니다. 이 상태는 응답을 통해 수정할 수 없습니다.

상태

Status 유형은 REST API, RPC API를 비롯하여 다양한 프로그래밍 환경에 적합한 논리적 오류 모델을 정의하며, gRPC에서 사용됩니다. 각 Status 메시지에는 오류 코드, 오류 메시지, 오류 세부정보라는 3가지 데이터가 포함됩니다.

API 설계 가이드에서 이 오류 모델과 모델 작업 방법에 대해 자세히 알아볼 수 있습니다.

JSON 표현
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
필드
code

integer

상태 코드로, google.rpc.Code의 열거형 값이어야 합니다.

message

string

개발자에게 정보를 제공하는 오류 메시지로, 영어로 작성되어야 합니다. 사용자에게 표시되는 모든 오류 메시지는 현지화되어 google.rpc.Status.details 필드에 전송되거나, 클라이언트 측에서 현지화되어야 합니다.

details[]

object

오류 세부정보를 설명하는 메시지 목록입니다. API에서 사용할 일반적인 메시지 유형 집합이 있습니다.

임의 유형의 필드를 포함하는 객체입니다. 추가 필드 "@type"은 유형을 식별하는 URI를 포함합니다. 예: { "id": 1234, "@type": "types.example.com/standard/id" }

UserConversationInput

사용자 입력과 관련된 정보입니다.

JSON 표현
{
  "type": string,
  "originalQuery": string
}
필드
type

string

사용자 입력 유형입니다. 예: 키보드, 음성, 터치 등입니다.

originalQuery

string

사용자가 입력한 원래 텍스트입니다.

IntentMatch

트리거된 인텐트 일치에 관한 정보 (전역 또는 장면 내): https://developers.google.com/assistant/conversational/intents

JSON 표현
{
  "intentId": string,
  "intentParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  },
  "handler": string,
  "nextSceneId": string
}
필드
intentId

string

이 상호작용을 트리거한 인텐트 ID입니다.

intentParameters

map (key: string, value: object (IntentParameterValue))

이 상호작용을 트리거한 인텐트의 매개변수입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

handler

string

이 상호작용에 연결된 핸들러의 이름입니다.

nextSceneId

string

이 상호작용이 이어지는 장면입니다.

ConditionsEvaluated

조건 평가 결과: https://developers.google.com/assistant/conversational/scenes#conditions

JSON 표현
{
  "failedConditions": [
    {
      object (Condition)
    }
  ],
  "successCondition": {
    object (Condition)
  }
}
필드
failedConditions[]

object (Condition)

'false'로 판정된 조건의 목록입니다.

successCondition

object (Condition)

'true'로 평가된 첫 번째 조건입니다(있는 경우).

조건

평가된 조건입니다.

JSON 표현
{
  "expression": string,
  "handler": string,
  "nextSceneId": string
}
필드
expression

string

이 조건에 지정된 표현식입니다.

handler

string

평가된 조건에 지정된 핸들러 이름입니다.

nextSceneId

string

평가된 조건에 지정된 대상 장면입니다.

OnSceneEnter

onSceneEnter 단계 실행 정보: https://developers.google.com/assistant/conversational/scenes#onEnter

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

string

onSceneEnter 이벤트에 지정된 핸들러 이름입니다.

WebhookRequest

작업 웹훅에 전달된 요청에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads

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

string

웹훅 요청의 페이로드.

WebhookResponse

작업 웹훅에서 수신된 응답에 관한 정보: https://developers.google.com/assistant/conversational/webhooks#payloads

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

string

웹훅 응답의 페이로드입니다.

WebhookInitiatedTransition

웹훅에서 반환된 대상 장면에 의해 트리거되는 이벤트: https://developers.google.com/assistant/conversational/webhooks#transition_scenes

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

string

전환으로 연결되는 장면의 ID입니다.

SlotMatch

일치하는 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling

JSON 표현
{
  "nluParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  }
}
필드
nluParameters

map (key: string, value: object (IntentParameterValue))

사용자 입력에서 NLU가 추출한 매개변수입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

SlotRequested

현재 요청된 슬롯에 관한 정보: https://developers.google.com/assistant/conversational/scenes#slot_filling

JSON 표현
{
  "slot": string,
  "prompt": {
    object (Prompt)
  }
}
필드
slot

string

요청된 시간대의 이름입니다.

prompt

object (Prompt)

슬롯 프롬프트

SlotValidated

슬롯에 대한 웹훅 유효성 검사가 완료된 후에 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#slot_filling

FormFilled

양식이 모두 작성되면 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#slot_filling

WaitingForUserInput

시스템에서 사용자 입력이 필요할 때 발생하는 이벤트: https://developers.google.com/assistant/conversational/scenes#input

EndConversation

상담사와의 대화가 종료되었음을 알리는 이벤트입니다.