Event

Google Chat アプリのインタラクション イベント。ユーザーと Chat アプリのインタラクションに関するデータを表し、そのデータが含まれます。インタラクション イベントを受信するように Chat アプリを構成するには、ユーザー インタラクションを受信して応答するをご覧ください。

Chat 用アプリは、ユーザー インタラクションからイベントを受信するだけでなく、スペースへの変更(スペースに新規メンバーが追加されたときなど)に関するイベントも受信できます。スペースのイベントについては、Google Chat のイベントを操作するをご覧ください。

警告: このイベント オブジェクトは、アドオンではない Chat 用アプリでのみ使用されます。Chat アプリが Google Workspace アドオンとして構築されている場合は、アドオンのドキュメントのアドオン イベント オブジェクトをご覧ください。アプリが受信するイベントの種類を確認するには、イベントの種類を特定するをご覧ください。

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)

ユーザーが Chat 用アプリを操作したタイプ(MESSAGE、ADDED_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_SPACE、CARD_CLICKED、MESSAGE のインタラクション イベントの場合、インタラクション イベントをトリガーしたメッセージ(該当する場合)。

user

object (User)

Chat 用アプリを操作したユーザー。

thread

object (Thread)

ユーザーが Chat 用アプリとやり取りしたスレッド。新しく送信されたメッセージによって作成された新しいスレッドの場合もあります。このフィールドは、インタラクション イベントが特定のメッセージまたはスレッドに関連付けられている場合に入力されます。

space

object (Space)

ユーザーが Chat アプリを操作したスペース。

action

object (FormAction)

CARD_CLICKED インタラクション イベントの場合、ユーザーがカードまたはダイアログをクリックしたときに関連付けられるフォーム アクション データ。詳細については、カードでユーザーが入力したフォームデータを読み取るをご覧ください。

configCompleteRedirectUrl

string

この URL は、MESSAGE、ADDED_TO_SPACE、APP_COMMAND のインタラクション イベントに入力されます。Google Chat の外部で承認フローまたは設定フローを完了した後、ユーザーはこの URL にリダイレクトされ、承認フローまたは設定フローが成功したことを Google Chat に通知する必要があります。詳しくは、Chat 用アプリを他のサービスやツールに接続するをご覧ください。

isDialogEvent

boolean

CARD_CLICKED および MESSAGE のインタラクション イベントの場合、ユーザーがダイアログを操作しているか、操作しようとしているか。

dialogEventType

enum (DialogEventType)

受信したダイアログ インタラクション イベントのタイプ。

common

object (CommonEventObject)

ロケール、ホストアプリ、プラットフォームなど、ユーザーのクライアントに関する情報を表します。Chat 用アプリの場合、CommonEventObject には、カードに入力されたデータなど、ダイアログを操作するユーザーから送信された情報が含まれます。

appCommandMetadata

object (AppCommandMetadata)

Chat アプリのコマンドに関するメタデータ。

CommonEventObject

共通イベント オブジェクトは、イベント オブジェクト全体の一部であり、ホストに依存しない一般的な情報をユーザーのクライアントからアドオンに渡します。この情報には、ユーザーの言語 / 地域、ホストアプリ、プラットフォームなどの詳細が含まれます。

ホームページ トリガーとコンテキスト トリガーに加えて、アドオンは、ユーザーがウィジェットを操作したときにイベント オブジェクトを作成してアクション コールバック関数に渡します。アドオンのコールバック関数は、共通イベント オブジェクトをクエリして、ユーザーのクライアントで開いているウィジェットの内容を特定できます。たとえば、アドオンは、ユーザーが eventObject.commentEventObject.formInputs オブジェクトの TextInput ウィジェットに入力したテキストを特定できます。

Chat アプリの場合、ユーザーがウィジェットを操作したときに呼び出した関数の名前。

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.useLocaleFromApp を true に設定する必要があります。アドオンのスコープリストには https://www.googleapis.com/auth/script.locale も含める必要があります。詳しくは、ユーザーの言語 / 地域とタイムゾーンへのアクセスをご覧ください。

hostApp

enum (HostApp)

イベント オブジェクトの生成時にアドオンがアクティブになっているホストアプリを示します。有効な値は次のとおりです。

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

enum (Platform)

イベントの発生元プラットフォームを示すプラットフォーム列挙型(WEB、IOS、ANDROID)。Chat 用アプリではサポートされていません。

timeZone

object (TimeZone)

デフォルトでは無効にされています。タイムゾーン ID と協定世界時(UTC)からのオフセット。このフィールドを有効にするには、アドオンのマニフェストで addOns.common.useLocaleFromApp を true に設定する必要があります。アドオンのスコープリストには https://www.googleapis.com/auth/script.locale も含める必要があります。詳しくは、ユーザーの言語 / 地域とタイムゾーンへのアクセスをご覧ください。

イベントタイプ CARD_CLICKED と SUBMIT_DIALOG でのみサポートされています。

formInputs

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

表示されたカード内のウィジェットの現在の値を含むマップ。マップキーは、各入力ウィジェット(TextInput.name、SelectionInput.name、DateTimePicker.name、DecoratedText.SwitchControl.name など)に割り当てられた文字列 name 値です。

マップ値オブジェクトの構造は、ウィジェット タイプによって異なります。

注: 以下の例は、Apps Script の V8 ランタイム用にフォーマットされています。Rhino ランタイムを使用している場合は、値の後に [""] を追加する必要があります。たとえば、e.commonEventObject.formInputs.employeeName.stringInputs.value[0] ではなく、イベント オブジェクトを e.commonEventObject.formInputs.employeeName[""].stringInputs.value[0] の形式にします。Apps Script のランタイムの詳細については、V8 ランタイムの概要をご覧ください。

  • 単一値ウィジェット(TextInput ウィジェット、DROPDOWN 型または RADIO_BUTTON 型の SelectionInput ウィジェットなど): 単一要素リスト(選択されていない場合は空のリスト)を含む StringInputs オブジェクト。

例: name が employeeName のテキスト入力ウィジェットの場合、e.commonEventObject.formInputs.employeeName.stringInputs.value[0] を使用してテキスト入力値にアクセスします。

  • 複数値ウィジェット(CHECK_BOX、SWITCH、MULTI_SELECT タイプの SelectionInput ウィジェットなど): 選択したアイテムの value 文字列のリストを含む StringInputs オブジェクト。

例: name が participants のマルチ値ウィジェットの場合、e.commonEventObject.formInputs.participants.stringInputs.value を使用して値配列にアクセスします。

  • DecoratedText.SwitchControl ウィジェット: StringInputs オブジェクト。selected が true の場合、stringInputs.value にはスイッチの value フィールド(value が指定されていない場合は ""。複数のスイッチが同じ name を共有している場合は、選択された各スイッチの value がリストに含まれます)が含まれます。selected が false の場合、スイッチの value は stringInputs.value から省略されます。

  • 日時選択ツール(DateTimePickerType.DATE_AND_TIME): DateTimeInput object。

例: name が myDTPicker の選択ツールの場合は、e.commonEventObject.formInputs.myDTPicker.dateTimeInput を使用して DateTimeInput オブジェクトにアクセスします。

  • 日付のみの選択ツール(DateTimePickerType.DATE_ONLY): DateInput object。

例: name が myDatePicker の選択ツールの場合は、e.commonEventObject.formInputs.myDatePicker.dateInput を使用して DateInput オブジェクトにアクセスします。

  • 時間のみの選択ツール(DateTimePickerType.TIME_ONLY): TimeInput object。

例: name が 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_CLICKED と SUBMIT_DIALOG でのみサポートされています。

JSON 表現
{
  "id": string,
  "offset": integer
}
フィールド
id

string

IANA TZ タイムゾーン データベース コード(「America/Toronto」など)。

offset

integer

協定世界時(UTC)からのユーザーのタイムゾーン オフセット(ミリ秒単位)。

入力

ユーザーがカードまたはダイアログに入力できるデータの種類。入力タイプは、ウィジェットが受け入れる値のタイプによって異なります。

JSON 表現
{

  "stringInputs": {
    object (StringInputs)
  },
  "dateTimeInput": {
    object (DateTimeInput)
  },
  "dateInput": {
    object (DateInput)
  },
  "timeInput": {
    object (TimeInput)
  }
}
フィールド
相互に排他的なフィールドのリストは次のとおりです。レスポンスに設定されるフィールドは、最大 1 つです。
stringInputs

object (StringInputs)

ユーザーがウィジェットに入力した値を表す文字列のリスト。

ウィジェットが 1 つの値のみを受け入れる場合(TextInput ウィジェットなど)、リストには 1 つの文字列オブジェクトが含まれます。ウィジェットが複数の値を受け入れる場合(チェックボックスの 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

1 時間あたりの分数。有効な値は 0 ~ 59 です。

AppCommandMetadata

Chat アプリコマンドに関するメタデータ。

JSON 表現
{
  "appCommandId": integer,
  "appCommandType": enum (AppCommandType)
}
フィールド
appCommandId

integer

Chat API 構成で指定されたコマンドの ID。

appCommandType

enum (AppCommandType)

Chat アプリのコマンドのタイプ。