Class Action

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

การดำเนินการที่เปิดใช้การโต้ตอบภายในองค์ประกอบ UI การดําเนินการจะไม่เกิดขึ้นในไคลเอ็นต์โดยตรง แต่จะเรียกใช้ฟังก์ชันการเรียกกลับของ 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ตั้งชื่อของฟังก์ชันเรียกกลับที่จะเรียก
setInteraction(interaction)Actionตั้งค่าการโต้ตอบกับผู้ใช้ จำเป็นเฉพาะเมื่อเปิดกล่องโต้ตอบ
setLoadIndicator(loadIndicator)Actionกำหนดสัญญาณบอกสถานะการโหลดที่จะแสดงผลในขณะกำลังดำเนินการ
setParameters(parameters)Actionอนุญาตให้ส่งผ่านพารามิเตอร์ที่กำหนดเองไปยังฟังก์ชันเรียกกลับ
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)

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

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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)

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

พารามิเตอร์

ชื่อประเภทคำอธิบาย
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 — ออบเจ็กต์นี้สำหรับการทำเชน

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