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 จะสร้างโทเค็นแบบสุ่ม และค่าของโทเค็นจะคงที่ คุณสามารถรับ เพิกถอน หรือสร้างโทเค็นใหม่ได้จากหน้าการกำหนดค่า Chat API ในคอนโซล Google Cloud

แอป 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

ออบเจ็กต์เหตุการณ์ทั่วไปคือส่วนหนึ่งของออบเจ็กต์เหตุการณ์โดยรวมที่มีข้อมูลทั่วไปที่ไม่ขึ้นอยู่กับโฮสต์ไปยังส่วนเสริมจากไคลเอ็นต์ของผู้ใช้ ข้อมูลนี้รวมถึงรายละเอียดต่างๆ เช่น ภาษาของผู้ใช้ แอปโฮสต์ และแพลตฟอร์ม

นอกเหนือจากทริกเกอร์หน้าแรกและทริกเกอร์ตามบริบทแล้ว ส่วนเสริมจะสร้างและส่งออบเจ็กต์เหตุการณ์ไปยังฟังก์ชัน Callback ของการดำเนินการเมื่อผู้ใช้โต้ตอบกับวิดเจ็ต ฟังก์ชัน Callback ของส่วนเสริมสามารถค้นหาออบเจ็กต์เหตุการณ์ทั่วไปเพื่อกำหนดเนื้อหาของวิดเจ็ตที่เปิดอยู่ในไคลเอ็นต์ของผู้ใช้ เช่น ส่วนเสริมสามารถค้นหาข้อความที่ผู้ใช้ป้อนลงในวิดเจ็ต TextInput ในออบเจ็กต์ eventObject.commentEventObject.formInputs ได้

สำหรับแอปใน 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 ในไฟล์ Manifest ของส่วนเสริม รายการขอบเขตของส่วนเสริมต้องมี https://www.googleapis.com/auth/script.locale ด้วย ดูรายละเอียดเพิ่มเติมได้ที่การเข้าถึงภาษาและเขตเวลาของผู้ใช้

hostApp

enum (HostApp)

ระบุแอปโฮสต์ที่ส่วนเสริมทำงานอยู่เมื่อสร้างออบเจ็กต์เหตุการณ์ ค่าที่เป็นไปได้มีดังนี้

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

enum (Platform)

Enum แพลตฟอร์มที่ระบุแพลตฟอร์มที่เกิดเหตุการณ์ (WEB, IOS หรือ ANDROID) แอปใน Chat ไม่รองรับ

timeZone

object (TimeZone)

ปิดใช้อยู่โดยค่าเริ่มต้น รหัสเขตเวลาและการชดเชยเวลาจากเวลาสากลเชิงพิกัด (UTC) หากต้องการเปิดช่องนี้ คุณต้องตั้งค่า addOns.common.useLocaleFromApp เป็น true ในไฟล์ Manifest ของส่วนเสริม รายการขอบเขตของส่วนเสริมต้องมี https://www.googleapis.com/auth/script.locale ด้วย ดูรายละเอียดเพิ่มเติมได้ที่การเข้าถึงภาษาและเขตเวลาของผู้ใช้

รองรับเฉพาะประเภทเหตุการณ์ CARD_CLICKED และ SUBMIT_DIALOG เท่านั้น

formInputs

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

แผนที่ที่มีค่าปัจจุบันของวิดเจ็ตในการ์ดที่แสดง คีย์แผนที่เป็นค่าสตริง name ที่กำหนดให้กับวิดเจ็ตอินพุตแต่ละรายการ (เช่น TextInput.name, SelectionInput.name, DateTimePicker.name หรือ DecoratedText.SwitchControl.name)

โครงสร้างของออบเจ็กต์ค่าแผนที่จะขึ้นอยู่กับประเภทวิดเจ็ต ดังนี้

หมายเหตุ: ตัวอย่างต่อไปนี้จัดรูปแบบสำหรับรันไทม์ V8 ของ Apps Script หากใช้รันไทม์ Rhino คุณต้องเพิ่ม [""] หลังค่า เช่น จัดรูปแบบออบเจ็กต์เหตุการณ์เป็น e.commonEventObject.formInputs.employeeName[""].stringInputs.value[0] แทนที่จะเป็น e.commonEventObject.formInputs.employeeName.stringInputs.value[0] ดูข้อมูลเพิ่มเติมเกี่ยวกับรันไทม์ใน Apps Script ได้ที่ภาพรวมรันไทม์ V8

  • วิดเจ็ตที่มีค่าเดียว (เช่น วิดเจ็ต TextInput หรือวิดเจ็ต SelectionInput ประเภท DROPDOWN หรือ RADIO_BUTTON): ออบเจ็กต์ StringInputs ที่มีรายการองค์ประกอบเดียว (หรือรายการว่างหากไม่ได้เลือก)

ตัวอย่าง: สำหรับวิดเจ็ตการป้อนข้อความที่มี employeeName เป็น name ให้เข้าถึงค่าการป้อนข้อความด้วย e.commonEventObject.formInputs.employeeName.stringInputs.value[0]

  • วิดเจ็ตที่มีหลายค่า (เช่น วิดเจ็ต SelectionInput ประเภท CHECK_BOX, SWITCH หรือ MULTI_SELECT): ออบเจ็กต์ StringInputs ที่มีรายการสตริง value ของรายการที่เลือก

ตัวอย่าง: สำหรับวิดเจ็ตที่มีหลายค่าซึ่งมี participants เป็น name ให้เข้าถึงอาร์เรย์ค่าด้วย 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 ให้เข้าถึงออบเจ็กต์ DateTimeInput โดยใช้ e.commonEventObject.formInputs.myDTPicker.dateTimeInput

  • เครื่องมือเลือกวันที่เท่านั้น (DateTimePickerType.DATE_ONLY): DateInput object

ตัวอย่าง: สำหรับเครื่องมือเลือกที่มี name เป็น myDatePicker ให้เข้าถึงออบเจ็กต์ DateInput โดยใช้ e.commonEventObject.formInputs.myDatePicker.dateInput

  • เครื่องมือเลือกเวลาเท่านั้น (DateTimePickerType.TIME_ONLY): TimeInput object

ตัวอย่าง: สำหรับเครื่องมือเลือกที่มี name เป็น myTimePicker ให้เข้าถึงออบเจ็กต์ TimeInput โดยใช้ e.commonEventObject.formInputs.myTimePicker.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 Workspace ที่ขยาย Google Chat แต่หากต้องการรับข้อมูลฟังก์ชัน เช่น ตัวระบุ ส่วนเสริมที่ขยาย Chat ควรใช้ช่อง parameters แทน โปรดดูหัวข้อสร้างอินเทอร์เฟซแบบอินเทอร์แอกทีฟสำหรับแอปใน Chat

TimeZone

รหัสเขตเวลาและการชดเชยเวลาจากเวลาสากลเชิงพิกัด (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)

รายการสตริงที่แสดงค่าที่ผู้ใช้ป้อนในวิดเจ็ต

หากวิดเจ็ตยอมรับค่าเดียว เช่น วิดเจ็ต 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)

เวลาตั้งแต่เวลา Epoch ในหน่วยมิลลิวินาที

hasDate

boolean

ข้อมูลที่ป้อน datetime มีวันที่ในปฏิทินหรือไม่

hasTime

boolean

ข้อมูลที่ป้อน datetime มีการประทับเวลาหรือไม่

DateInput

ค่าอินพุตวันที่

การแสดง JSON
{
  "msSinceEpoch": string
}
ช่อง
msSinceEpoch

string (int64 format)

เวลาตั้งแต่เวลา Epoch ในหน่วยมิลลิวินาที

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

appCommandType

enum (AppCommandType)

ประเภทคำสั่งของแอปใน Chat