Event

Google Chat 应用互动事件,用于表示和包含与用户与 Chat 应用互动相关的数据。如需将 Chat 应用配置为接收互动事件,请参阅接收和响应用户互动

除了接收用户互动事件之外,Chat 应用还可以接收与聊天室更改相关的事件,例如有新成员加入聊天室时。如需了解聊天室事件,请参阅处理 Google Chat 中的事件

JSON 表示法
{
  "type": enum (EventType),
  "eventTime": string,
  "token": string,
  "threadKey": string,
  "message": {
    object (Message)
  },
  "user": {
    object (User)
  },
  "space": {
    object (Space)
  },
  "action": {
    object (FormAction)
  },
  "configCompleteRedirectUrl": string,
  "isDialogEvent": boolean,
  "dialogEventType": enum (DialogEventType),
  "common": {
    object (CommonEventObject)
  },
  "appCommandMetadata": {
    object (AppCommandMetadata)
  }
}
字段
type

enum (EventType)

用户与 Chat 应用互动的类型,例如 MESSAGEADDED_TO_SPACE

eventTime

string (Timestamp format)

指示互动事件发生时间的时间戳。

token

string

一个密钥值,旧版 Chat 应用可以使用该值来验证请求是否来自 Google。Google 会随机生成该令牌,其值保持不变。您可以在 Google Cloud 控制台中的 Chat API 配置页面中获取、撤消或重新生成令牌。

新版 Chat 应用不使用此字段。它未出现在 API 响应和 Chat API 配置页面中。

threadKey

string

与互动事件相关的会话的 Chat 应用定义的键。如需了解详情,请参阅 spaces.messages.thread.threadKey

message

object (Message)

对于 ADDED_TO_SPACECARD_CLICKEDMESSAGE 互动事件,触发互动事件的消息(如果适用)。

user

object (User)

与 Chat 应用互动的用户。

space

object (Space)

用户与 Chat 应用互动的空间。

action

object (FormAction)

对于 CARD_CLICKED 互动事件,是指用户点击卡片或对话框时关联的表单操作数据。如需了解详情,请参阅读取用户在卡片上输入的表单数据

configCompleteRedirectUrl

string

对于 MESSAGE 互动事件,是指用户在 Google Chat 之外完成授权或配置流程后必须重定向到的网址。如需了解详情,请参阅将 Chat 应用与其他服务和工具相关联

isDialogEvent

boolean

对于 CARD_CLICKEDMESSAGE 互动事件,表示用户是否正在与对话框互动或即将与对话框互动。

dialogEventType

enum (DialogEventType)

收到的对话框互动事件的类型。

common

object (CommonEventObject)

表示与用户客户端相关的信息,例如语言区域、托管应用和平台。对于 Chat 应用,CommonEventObject 包含与对话框互动的用户提交的信息,例如卡片上输入的数据。

appCommandMetadata

object (AppCommandMetadata)

系统会为应用命令(包括斜杠命令和快捷命令)填充此字段。

CommonEventObject

表示与用户客户端相关的信息,例如语言区域、托管应用和平台。对于 Chat 应用,CommonEventObject 包含与卡片互动的用户提交的数据,例如在对话框中输入的数据。

JSON 表示法
{
  "userLocale": string,
  "hostApp": enum (HostApp),
  "platform": enum (Platform),
  "timeZone": {
    object (TimeZone)
  },
  "formInputs": {
    string: {
      object (Inputs)
    },
    ...
  },
  "parameters": {
    string: string,
    ...
  },
  "invokedFunction": string
}
字段
userLocale

string

完整的 locale.displayName,格式为 [ISO 639 语言代码]-[ISO 3166 国家/地区代码],例如“en-US”。

hostApp

enum (HostApp)

hostApp 枚举,用于指明调用插件所在的应用。对于 Chat 应用,始终为 CHAT

platform

enum (Platform)

平台枚举,用于指示事件的来源平台(WEBIOSANDROID)。Chat 应用不支持此参数。

timeZone

object (TimeZone)

时区 ID 和相对于世界协调时间 (UTC) 的偏移量。仅适用于事件类型 CARD_CLICKEDSUBMIT_DIALOG

formInputs

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

一个映射,其中包含用户通过卡片或对话框在 widget 中输入的值。映射键是分配给每个 widget 的字符串 ID,值表示 widget 的输入。

如需了解详情,请参阅处理用户输入的信息

parameters

map (key: string, value: string)

传递给调用函数的自定义参数。键和值都必须是字符串。

invokedFunction

string

与 widget 关联的调用函数的名称。仅适用于 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

常规 widget 的输入参数。对于单值 widget,它是单值列表。对于多值微件(例如复选框),系统会显示所有值。

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

指定应用互动的命令 ID。

appCommandType

enum (AppCommandType)

应用命令的类型。