Event

Chat 앱과의 사용자 상호작용에 관한 데이터를 나타내고 포함하는 Google Chat 앱 상호작용 이벤트입니다. 상호작용 이벤트를 수신하도록 Chat 앱을 구성하려면 사용자 상호작용 수신 및 응답을 참고하세요.

사용자 상호작용에서 이벤트를 수신하는 것 외에도 Chat 앱은 새 회원이 스페이스에 추가되는 등 스페이스 변경에 관한 이벤트를 수신할 수 있습니다. 스페이스 이벤트에 대해 알아보려면 Google Chat의 이벤트 사용하기를 참고하세요.

참고: 이 이벤트는 채팅 상호작용 이벤트에만 사용됩니다. 채팅 앱이 Google Workspace 부가기능으로 빌드된 경우 부가기능 문서의 Chat 이벤트 객체를 참고하세요.

JSON 표현
{
  "type": enum (EventType),
  "eventTime": string,
  "token": string,
  "threadKey": string,
  "message": {
    object (Message)
  },
  "user": {
    object (User)
  },
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "action": {
    object (FormAction)
  },
  "configCompleteRedirectUrl": string,
  "isDialogEvent": boolean,
  "dialogEventType": enum (DialogEventType),
  "common": {
    object (CommonEventObject)
  },
  "appCommandMetadata": {
    object (AppCommandMetadata)
  }
}
필드
type

enum (EventType)

MESSAGE 또는 ADDED_TO_SPACE과 같은 채팅 앱과의 사용자 상호작용 유형입니다.

eventTime

string (Timestamp format)

상호작용 이벤트가 발생한 시간을 나타내는 타임스탬프입니다.

token

string

기존 Chat 앱이 요청이 Google에서 온 것인지 확인하는 데 사용할 수 있는 보안 비밀 값입니다. Google에서 토큰을 무작위로 생성하며 값은 정적으로 유지됩니다. Google Cloud 콘솔의 Chat API 구성 페이지에서 토큰을 획득, 취소 또는 재생성할 수 있습니다.

최신 채팅 앱은 이 필드를 사용하지 않습니다. API 응답과 Chat API 구성 페이지에 표시되지 않습니다.

threadKey

string

상호작용 이벤트와 관련된 스레드의 Chat 앱 정의 키입니다. 자세한 내용은 spaces.messages.thread.threadKey를 참고하세요.

message

object (Message)

ADDED_TO_SPACE, CARD_CLICKED, MESSAGE 상호작용 이벤트의 경우 상호작용 이벤트를 트리거한 메시지입니다(해당하는 경우).

user

object (User)

Chat 앱과 상호작용한 사용자입니다.

thread

object (Thread)

사용자가 Chat 앱과 상호작용한 대화목록입니다. 새로 보낸 메시지로 생성된 새 대화목록일 수 있습니다. 이 필드는 상호작용 이벤트가 특정 메시지 또는 대화목록과 연결된 경우에 입력됩니다.

space

object (Space)

사용자가 채팅 앱과 상호작용한 스페이스입니다.

action

object (FormAction)

CARD_CLICKED 상호작용 이벤트의 경우 사용자가 카드나 대화상자를 클릭할 때 연결된 양식 작업 데이터입니다. 자세한 내용은 카드에서 사용자가 입력한 양식 데이터 읽기를 참고하세요.

configCompleteRedirectUrl

string

이 URL은 MESSAGE, ADDED_TO_SPACE, APP_COMMAND 상호작용 이벤트에 대해 채워집니다. Google Chat 외부에서 승인 또는 구성 흐름을 완료한 후 사용자는 이 URL로 리디렉션되어 승인 또는 구성 흐름이 성공했음을 Google Chat에 알려야 합니다. 자세한 내용은 Chat 앱을 다른 서비스 및 도구와 연결하기를 참고하세요.

isDialogEvent

boolean

CARD_CLICKEDMESSAGE 상호작용 이벤트의 경우 사용자가 대화상자와 상호작용 중인지 또는 상호작용하려고 하는지 여부입니다.

dialogEventType

enum (DialogEventType)

수신된 대화상자 상호작용 이벤트의 유형입니다.

common

object (CommonEventObject)

사용자의 클라이언트에 관한 정보(예: 언어, 호스트 앱, 플랫폼)를 나타냅니다. Chat 앱의 경우 CommonEventObject에는 카드에 입력된 데이터와 같이 대화상자와 상호작용하는 사용자가 제출한 정보가 포함됩니다.

appCommandMetadata

object (AppCommandMetadata)

Chat 앱 명령어에 관한 메타데이터입니다.

CommonEventObject

공통 이벤트 객체는 사용자 클라이언트에서 부가기능으로 일반적인 호스트 독립 정보를 전달하는 전체 이벤트 객체의 일부입니다. 이 정보에는 사용자의 언어, 호스트 앱, 플랫폼과 같은 세부정보가 포함됩니다.

홈페이지 및 컨텍스트 트리거 외에도 사용자가 위젯과 상호작용할 때 애드온은 이벤트 객체를 구성하여 작업 콜백 함수에 전달합니다. 부가기능의 콜백 함수는 공통 이벤트 객체를 쿼리하여 사용자의 클라이언트에서 열린 위젯의 콘텐츠를 확인할 수 있습니다. 예를 들어 부가기능은 eventObject.commentEventObject.formInputs 객체에서 사용자가 TextInput 위젯에 입력한 텍스트를 찾을 수 있습니다.

채팅 앱의 경우 사용자가 위젯과 상호작용할 때 호출한 함수의 이름입니다.

JSON 표현
{
  "userLocale": string,
  "hostApp": enum (HostApp),
  "platform": enum (Platform),
  "timeZone": {
    object (TimeZone)
  },
  "formInputs": {
    string: {
      object (Inputs)
    },
    ...
  },
  "parameters": {
    string: string,
    ...
  },
  "invokedFunction": string
}
필드
userLocale

string

기본적으로 사용 중지됩니다. ISO 639 언어 코드-ISO 3166 국가/지역 코드 형식의 사용자 언어 및 국가/지역 식별자입니다. 예를 들면 en-US입니다.

이 필드를 사용 설정하려면 부가기능의 매니페스트에서 addOns.common.useLocaleFromApptrue로 설정해야 합니다. 애드온의 범위 목록에도 https://www.googleapis.com/auth/script.locale가 포함되어야 합니다. 자세한 내용은 사용자 언어 및 시간대 액세스를 참고하세요.

hostApp

enum (HostApp)

이벤트 객체가 생성될 때 애드온이 활성화된 호스트 앱을 나타냅니다. 가능한 값은 다음과 같습니다.

  • GMAIL
  • CALENDAR
  • DRIVE
  • DOCS
  • SHEETS
  • SLIDES
  • CHAT
platform

enum (Platform)

이벤트가 발생한 플랫폼 (WEB, IOS, ANDROID)을 나타내는 플랫폼 enum입니다. Chat 앱에서는 지원되지 않습니다.

timeZone

object (TimeZone)

기본적으로 사용 중지됩니다. 시간대 ID 및 협정 세계시 (UTC) 기준 오프셋입니다. 이 필드를 사용 설정하려면 부가기능의 매니페스트에서 addOns.common.useLocaleFromApptrue로 설정해야 합니다. 애드온의 범위 목록에도 https://www.googleapis.com/auth/script.locale가 포함되어야 합니다. 자세한 내용은 사용자 언어 및 시간대 액세스를 참고하세요.

CARD_CLICKEDSUBMIT_DIALOG 이벤트 유형에만 지원됩니다.

formInputs

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

표시된 카드의 위젯의 현재 값이 포함된 맵입니다. 지도 키는 각 위젯에 할당된 문자열 ID입니다.

지도 값 객체의 구조는 위젯 유형에 따라 다릅니다.

참고: 다음 예는 Apps Script의 V8 런타임에 맞게 형식이 지정되어 있습니다. Rhino 런타임을 사용하는 경우 값 뒤에 [""]를 추가해야 합니다. 예를 들어 e.commonEventObject.formInputs.employeeName.stringInputs.value[0] 대신 이벤트 객체를 e.commonEventObject.formInputs.employeeName[""].stringInputs.value[0]로 포맷합니다. Apps Script의 런타임에 대해 자세히 알아보려면 V8 런타임 개요를 참고하세요.

  • 단일 값 위젯 (예: 텍스트 상자): 문자열 목록 (요소 하나만 해당)

: ID가 employeeName인 텍스트 입력 위젯의 경우 e.commonEventObject.formInputs.employeeName.stringInputs.value[0]를 사용하여 텍스트 입력 값에 액세스합니다.

  • 다중 값 위젯 (예: 체크박스 그룹): 문자열 목록

: ID가 participants인 다중 값 위젯의 경우 e.commonEventObject.formInputs.participants.stringInputs.value를 사용하여 값 배열에 액세스합니다.

: ID가 myDTPicker인 선택기의 경우 e.commonEventObject.formInputs.myDTPicker.dateTimeInput를 사용하여 DateTimeInput 객체에 액세스합니다.

: ID가 myDatePicker인 선택기의 경우 e.commonEventObject.formInputs.myDatePicker.dateInput를 사용하여 DateInput 객체에 액세스합니다.

: ID가 myTimePicker인 선택기의 경우 e.commonEventObject.formInputs.myTimePicker.timeInput를 사용하여 TimeInput 객체에 액세스합니다.

parameters

map (key: string, value: string)

actionParameters 또는 Action.setParameters()를 사용하여 작업에 제공하는 추가 매개변수입니다.

개발자 프리뷰: Google Chat을 확장하는 부가기능의 경우 사용자가 다중 선택 메뉴에 입력한 내용을 기반으로 항목을 제안하려면 "autocomplete_widget_query" 키 (event.commonEventObject.parameters["autocomplete_widget_query"])의 값을 사용하세요. 이 값을 사용하여 데이터베이스를 쿼리하고 사용자가 입력할 때 선택 가능한 항목을 제안할 수 있습니다. 자세한 내용은 Google Chat 사용자로부터 정보 수집 및 처리하기를 참고하세요.

invokedFunction

string

호출할 함수의 이름입니다.

이 필드는 Google Chat을 확장하는 Google Workspace 부가기능에는 채워지지 않습니다. 대신 식별자와 같은 함수 데이터를 수신하려면 Chat을 확장하는 부가기능이 parameters 필드를 사용해야 합니다. Chat 앱용 대화형 인터페이스 빌드를 참고하세요.

TimeZone

시간대 ID 및 협정 세계시 (UTC) 기준 오프셋입니다. CARD_CLICKEDSUBMIT_DIALOG 이벤트 유형에만 지원됩니다.

JSON 표현
{
  "id": string,
  "offset": integer
}
필드
id

string

IANA TZ 시간대 데이터베이스 코드입니다(예: 'America/Toronto').

offset

integer

협정 세계시(UTC)에서 사용자의 시간대 오프셋(밀리초)입니다.

입력

사용자가 카드나 대화상자에 입력할 수 있는 데이터 유형입니다. 입력 유형은 위젯에서 허용하는 값의 유형에 따라 다릅니다.

JSON 표현
{

  // Union field inputs can be only one of the following:
  "stringInputs": {
    object (StringInputs)
  },
  "dateTimeInput": {
    object (DateTimeInput)
  },
  "dateInput": {
    object (DateInput)
  },
  "timeInput": {
    object (TimeInput)
  }
  // End of list of possible types for union field inputs.
}
필드

통합 필드 inputs.

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

stringInputs

object (StringInputs)

사용자가 위젯에 입력하는 값을 나타내는 문자열 목록입니다.

위젯이 TextInput 위젯과 같이 하나의 값만 허용하는 경우 목록에는 하나의 문자열 객체가 포함됩니다. 체크박스의 SelectionInput 위젯과 같이 위젯이 여러 값을 허용하는 경우 목록에는 사용자가 입력하거나 선택한 각 값의 문자열 객체가 포함됩니다.

dateTimeInput

object (DateTimeInput)

날짜와 시간을 모두 허용하는 DateTimePicker 위젯의 날짜 및 시간 입력 값입니다.

dateInput

object (DateInput)

날짜 값만 허용하는 DateTimePicker 위젯의 날짜 입력 값입니다.

timeInput

object (TimeInput)

시간 값만 허용하는 DateTimePicker 위젯의 시간 입력 값

StringInputs

일반 위젯의 입력 매개변수입니다. 단일 값 위젯의 경우 단일 값 목록입니다. 체크박스와 같은 다중 값 위젯의 경우 모든 값이 표시됩니다.

JSON 표현
{
  "value": [
    string
  ]
}
필드
value[]

string

사용자가 입력한 문자열 목록입니다.

DateTimeInput

날짜 및 시간 입력 값입니다.

JSON 표현
{
  "msSinceEpoch": string,
  "hasDate": boolean,
  "hasTime": boolean
}
필드
msSinceEpoch

string (int64 format)

에포크 시간 이후의 시간(밀리초)입니다.

hasDate

boolean

datetime 입력에 캘린더 날짜가 포함되는지 여부입니다.

hasTime

boolean

datetime 입력에 타임스탬프가 포함되어 있는지 여부입니다.

DateInput

날짜 입력 값입니다.

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

string (int64 format)

에포크 시간 이후의 시간(밀리초)입니다.

TimeInput

시간 입력 값입니다.

JSON 표현
{
  "hours": integer,
  "minutes": integer
}
필드
hours

integer

24시간 기준의 시간입니다.

minutes

integer

시간이 지난 후의 분 수입니다. 유효한 값은 0~59입니다.

AppCommandMetadata

Chat 앱 명령어에 관한 메타데이터입니다.

JSON 표현
{
  "appCommandId": integer,
  "appCommandType": enum (AppCommandType)
}
필드
appCommandId

integer

Chat API 구성에 지정된 명령어의 ID입니다.

appCommandType

enum (AppCommandType)

채팅 앱 명령어의 유형입니다.