Class Action

การดำเนินการ

การดำเนินการที่เปิดใช้การโต้ตอบภายในองค์ประกอบ UI การดำเนินการไม่ได้เกิดขึ้นในไคลเอ็นต์โดยตรง แต่เรียกใช้ฟังก์ชันการเรียกกลับของ Apps Script ด้วยพารามิเตอร์ที่ไม่บังคับ

พร้อมใช้งานสำหรับส่วนเสริมของ Google Workspace และแอป Google Chat

const image = CardService.newImage().setOnClickAction(
    CardService.newAction().setFunctionName('handleImageClick').setParameters({
      imageSrc: 'carImage'
    }),
);

เมธอด

วิธีการประเภทการแสดงผลรายละเอียดแบบย่อ
addRequiredWidget(requiredWidget)Actionเพิ่มชื่อวิดเจ็ตที่การดําเนินการนี้จําเป็นต้องใช้เพื่อให้การส่งถูกต้อง
setAllWidgetsAreRequired(allWidgetsAreRequired)Actionระบุว่าการดำเนินการนี้ต้องใช้อินพุตจากวิดเจ็ตทั้งหมดหรือไม่
setFunctionName(functionName)Actionตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้
setInteraction(interaction)Actionตั้งค่าการโต้ตอบกับผู้ใช้ จำเป็นเฉพาะเมื่อเปิดกล่องโต้ตอบ
setLoadIndicator(loadIndicator)Actionตั้งค่าตัวบ่งชี้การโหลดที่แสดงขณะที่การดำเนินการกำลังดำเนินอยู่
setParameters(parameters)Actionอนุญาตให้ส่งพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback
setPersistValues(persistValues)Actionระบุว่าค่าของแบบฟอร์มจะกำหนดโดยค่าของลูกค้าหรือค่าของเซิร์ฟเวอร์หลังจากการตอบกลับการดําเนินการอัปเดต Card ของแบบฟอร์ม

เอกสารประกอบโดยละเอียด

addRequiredWidget(requiredWidget)

เพิ่มชื่อวิดเจ็ตที่การดําเนินการนี้จําเป็นต้องใช้เพื่อให้การส่งถูกต้อง หากวิดเจ็ตในรายการนี้ไม่มีค่าเมื่อเรียกใช้การดำเนินการนี้ ระบบจะยกเลิกการส่งแบบฟอร์ม

ใช้ได้กับแอป Google Chat เท่านั้น ไม่พร้อมใช้งานสำหรับส่วนเสริมของ Google Workspace

const textInput = CardService.newTextInput()
                      .setFieldName('text_input_1')
                      .setTitle('Text input title');

// Creates a footer button that requires an input from the above TextInput
// Widget.
const action = CardService.newAction()
                   .setFunctionName('notificationCallback')
                   .addRequiredWidget('text_input_1');
const fixedFooter = CardService.newFixedFooter().setPrimaryButton(
    CardService.newTextButton().setText('help').setOnClickAction(action),
);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
requiredWidgetStringชื่อวิดเจ็ตที่จําเป็นสําหรับการดําเนินการนี้

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setAllWidgetsAreRequired(allWidgetsAreRequired)

ระบุว่าการดำเนินการนี้ต้องใช้อินพุตจากวิดเจ็ตทั้งหมดหรือไม่

ใช้ได้กับแอป Google Chat เท่านั้น ไม่พร้อมใช้งานสำหรับส่วนเสริมของ Google Workspace

// Creates a button with an action that requires inputs from all widgets.
const button = CardService.newTextButton()
                   .setText('Create notification')
                   .setOnClickAction(
                       CardService.newAction().setAllWidgetsAreRequired(true));

พารามิเตอร์

ชื่อประเภทคำอธิบาย
allWidgetsAreRequiredBooleanการดำเนินการต้องใช้ข้อมูลจากวิดเจ็ตทั้งหมดหรือไม่ ค่าเริ่มต้นคือ false

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setFunctionName(functionName)

ตั้งชื่อฟังก์ชัน Callback ที่จะเรียกใช้ ต้องระบุ

พารามิเตอร์

ชื่อประเภทคำอธิบาย
functionNameStringชื่อของฟังก์ชัน คุณสามารถใช้ฟังก์ชันจากไลบรารีที่รวมไว้ เช่น Library.libFunction1

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setInteraction(interaction)

ตั้งค่าการโต้ตอบกับผู้ใช้ จำเป็นเฉพาะเมื่อเปิดกล่องโต้ตอบ หากไม่ได้ระบุ แอปจะตอบสนองโดยดำเนินการ Action เช่น เปิดลิงก์หรือเรียกใช้ฟังก์ชัน ตามที่ควรจะเป็น

ใช้ได้กับแอป Google Chat เท่านั้น ไม่พร้อมใช้งานสำหรับส่วนเสริมของ Google Workspace

const action = CardService.newAction()
                   .setFunctionName('handleDialog')
                   .setInteraction(CardService.Interaction.OPEN_DIALOG);

พารามิเตอร์

ชื่อประเภทคำอธิบาย
interactionInteractionการโต้ตอบที่จะระบุ

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setLoadIndicator(loadIndicator)

ตั้งค่าตัวบ่งชี้การโหลดที่แสดงขณะที่การดำเนินการกำลังดำเนินอยู่

พารามิเตอร์

ชื่อประเภทคำอธิบาย
loadIndicatorLoadIndicatorไฟบอกสถานะที่จะแสดง

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setParameters(parameters)

อนุญาตให้ส่งพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชัน Callback ไม่บังคับ

พารามิเตอร์

ชื่อประเภทคำอธิบาย
parametersObjectทั้งคีย์และค่าต้องเป็นสตริง

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม


setPersistValues(persistValues)

ระบุว่าค่าของแบบฟอร์มจะกำหนดโดยค่าของลูกค้าหรือค่าของเซิร์ฟเวอร์หลังจากการตอบกลับการดําเนินการอัปเดต Card ของแบบฟอร์ม เมื่อตั้งค่าเป็น true ค่าของไคลเอ็นต์จะยังคงอยู่หลังจากการตอบกลับของเซิร์ฟเวอร์ เมื่อตั้งค่าเป็น false ค่าของเซิร์ฟเวอร์จะเขียนทับค่าของแบบฟอร์ม ค่าเริ่มต้นคือ false

การคงค่าไคลเอ็นต์ไว้ช่วยป้องกันไม่ให้ฟอร์มมีการเปลี่ยนแปลงโดยไม่คาดคิดหลังจากผู้ใช้ทำการแก้ไข เช่น ในกรณีที่ผู้ใช้แก้ไข TextInput หลังจากที่ส่งแบบฟอร์มแล้ว แต่ก่อนที่เซิร์ฟเวอร์จะตอบกลับ หากค่ายังคงอยู่ การแก้ไขที่ผู้ใช้ทําจะยังคงอยู่หลังจากที่เซิร์ฟเวอร์ตอบกลับการอัปเดต Card มิเช่นนั้นค่าแบบฟอร์มจะกลับไปเป็นค่าที่ผู้ใช้ส่งไปยังแบบฟอร์มในตอนแรก

การเก็บค่าไคลเอ็นต์ไว้อาจรบกวนความสามารถของสคริปต์ในการล้างช่องแบบฟอร์มหรือลบล้างค่าแบบฟอร์ม ดังนั้นโปรดหลีกเลี่ยงการเปิดใช้การเก็บค่าไว้สําหรับฟังก์ชันประเภทนั้น หากไม่มีการเก็บรักษา เราขอแนะนำให้ใช้ LoadIndicator.SPINNER สำหรับเหตุการณ์ เนื่องจากจะล็อก UI และป้องกันไม่ให้ผู้ใช้แก้ไขก่อนที่เซิร์ฟเวอร์จะตอบกลับ หรือจะใช้ LoadIndicator.NONE ก็ได้ และตรวจสอบว่าองค์ประกอบทุกรายการในแบบฟอร์มมีการดำเนินการ onChange

// Creates a button with an action that persists the client's values as the
// on-click action.
const button =
    CardService.newTextButton()
        .setText('Create notification')
        .setOnClickAction(
            CardService.newAction().setPersistValues(true).setFunctionName(
                'functionName'),
        );

พารามิเตอร์

ชื่อประเภทคำอธิบาย
persistValuesBooleanเก็บค่าไว้หรือไม่ ค่าเริ่มต้นคือ false

รีเทิร์น

Action — ออบเจ็กต์นี้สําหรับการต่อเชื่อม

วิธีการที่เลิกใช้งาน