Class Action

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

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

ใช้ได้กับส่วนเสริมของ Google Workspace และแอป Google Chat

var 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

var textInput = CardService.newTextInput()
    .setFieldName("text_input_1")
    .setTitle("Text input title")

// Creates a footer button that requires an input from the above TextInput Widget.
var action = CardService.newAction()
    .setFunctionName("notificationCallback")
    .addRequiredWidget("text_input_1");
var 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 — ออบเจ็กต์นี้สำหรับการทำห่วงโซ่

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