การขยาย UI ข้อความ

ส่วนเสริมของ Google Workspace ที่เพิ่มพูนของ Gmail อินเทอร์เฟซผู้ใช้เมื่อผู้ใช้กำลังอ่านข้อความ วิธีนี้ช่วยให้ ส่วนเสริมของ Google Workspace สำหรับทำงานต่างๆ ที่ตอบสนองความต้องการโดยอัตโนมัติ เพื่อส่งข้อความในเนื้อหา เช่น การแสดง การเรียกข้อมูล หรือการส่ง ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับข้อความ

การเข้าถึง UI ข้อความของส่วนเสริม

วิธีดู UI ข้อความของส่วนเสริมมี 2 วิธี วิธีแรกคือการเปิด ข้อความขณะที่เปิดส่วนเสริมอยู่แล้ว (เช่น เมื่อดู หน้าแรกของส่วนเสริมในหน้าต่างกล่องจดหมาย Gmail) วิธีที่สองคือการ เริ่มใช้งานส่วนเสริมขณะดูข้อความ

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

การสร้างส่วนเสริมข้อความ

คุณสามารถเพิ่มฟังก์ชันการทำงานของข้อความลงในส่วนเสริมโดยทำตามขั้นตอนทั่วไปต่อไปนี้

  1. เพิ่มช่องที่เหมาะสมลงในโปรเจ็กต์สคริปต์ของส่วนเสริม ประจักษ์ ซึ่งรวมถึง ต้องมีขอบเขตสำหรับ ฟังก์ชันข้อความ อย่าลืมเพิ่ม ช่องทริกเกอร์แบบมีเงื่อนไข ในไฟล์ Manifest โดย unconditional เป็น {}
  2. ใช้ฟังก์ชันทริกเกอร์ตามบริบทที่สร้าง UI ข้อความ เมื่อผู้ใช้เลือกส่วนเสริมในข้อความ
  3. ใช้ฟังก์ชันที่เกี่ยวข้องซึ่งจำเป็นต่อการตอบสนองต่อ UI ของผู้ใช้ การโต้ตอบ

ทริกเกอร์ตามบริบท

ในการให้ความช่วยเหลือแก่ผู้ใช้ในการอ่านข้อความ ส่วนเสริมของ Google Workspace สามารถกำหนด ทริกเกอร์ตามบริบทในไฟล์ Manifest เมื่อผู้ใช้ เปิดข้อความ Gmail (ที่เปิดส่วนเสริมอยู่) ที่ตรงกับทริกเกอร์ เกณฑ์* ที่ทริกเกอร์จะเริ่มทำงาน ทริกเกอร์ที่เริ่มทำงานจะเรียกใช้ ฟังก์ชันทริกเกอร์ตามบริบทที่สร้างฟังก์ชัน อินเทอร์เฟซผู้ใช้ของส่วนเสริม และส่งคืนให้กับ Gmail เพื่อแสดง ในตอนนั้น ก็เริ่มโต้ตอบกับผู้ใช้ได้

มีการกำหนดทริกเกอร์ตามบริบทในโปรเจ็กต์ของส่วนเสริม ประจักษ์แจ้ง คำจำกัดความของทริกเกอร์จะบอก Gmail ว่าฟังก์ชันทริกเกอร์ใดจะเริ่มทำงาน ตัวอย่างเช่น ข้อมูลโค้ดไฟล์ Manifest นี้ตั้งค่าทริกเกอร์ที่ไม่มีเงื่อนไข ที่เรียกใช้ฟังก์ชันทริกเกอร์ onGmailMessageOpen() เมื่อเปิดข้อความ:

{
  ...
  "addOns": {

    "common": {
      ...
    },
    "gmail": {
      "contextualTriggers": [
        {
          "unconditional": {},
          "onTriggerFunction": "onGmailMessageOpen"
        }
      ],
      ...
    },
    ...
  }
  ...
}

ฟังก์ชันทริกเกอร์ตามบริบท

ทริกเกอร์ตามบริบททุกรายการต้องมีฟังก์ชันทริกเกอร์ที่สอดคล้องกัน ที่สร้างอินเทอร์เฟซผู้ใช้ของส่วนเสริม คุณจะระบุฟังก์ชันนี้ใน ไฟล์ Manifest onTriggerFunction ด้วย คุณใช้ฟังก์ชันนี้เพื่อยอมรับ ออบเจ็กต์เหตุการณ์การดำเนินการ และแสดงค่าใดค่าหนึ่ง Card ออบเจ็กต์หรืออาร์เรย์ของ ออบเจ็กต์ Card รายการ

เมื่อทริกเกอร์ตามบริบทเริ่มทำงานสำหรับข้อความ Gmail หนึ่งๆ จะเรียกใช้ทริกเกอร์นี้ และส่งค่า action event object ฟังก์ชันทริกเกอร์มักจะใช้รหัสข้อความที่ได้จากออบเจ็กต์เหตุการณ์นี้ เพื่อรับข้อความและรายละเอียดอื่นๆ โดยใช้สคริปต์ Apps บริการ Gmail เช่น ทริกเกอร์ อาจดึงเนื้อหาของข้อความโดยใช้ฟังก์ชันต่อไปนี้

  // Activate temporary Gmail scopes, in this case to allow
  // the add-on to read message metadata and content.
  var accessToken = e.gmail.accessToken;
  GmailApp.setCurrentMessageAccessToken(accessToken);

  // Read message metadata and content. This requires the Gmail scope
  // https://www.googleapis.com/auth/gmail.addons.current.message.readonly.
  var messageId = e.gmail.messageId;
  var message = GmailApp.getMessageById(messageId);
  var subject = message.getSubject();
  var sender = message.getFrom();
  var body = message.getPlainBody();
  var messageDate = message.getDate();

  // Setting the access token with a gmail.addons.current.message.readonly
  // scope also allows read access to the other messages in the thread.
  var thread = message.getThread();
  var threadMessages = thread.getMessages();

  // Using this link can avoid the need to copy message or thread content
  var threadLink = thread.getPermalink();

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

ฟังก์ชันทริกเกอร์ต้องสร้างและแสดงผลอาร์เรย์ของ Card ออบเจ็กต์ ตัวอย่างเช่น ตัวอย่างต่อไปนี้จะสร้างส่วนเสริมที่มีการ์ดเดียวที่ จะแสดงเรื่องและผู้ส่งข้อความ ดังนี้

  function onGmailMessageOpen(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // message metadata to be read.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var subject = message.getSubject();
    var sender = message.getFrom();

    // Create a card with a single card section and two widgets.
    // Be sure to execute build() to finalize the card construction.
    var exampleCard = CardService.newCardBuilder()
        .setHeader(CardService.newCardHeader()
            .setTitle('Example card'))
        .addSection(CardService.newCardSection()
            .addWidget(CardService.newKeyValue()
                .setTopLabel('Subject')
                .setContent(subject))
            .addWidget(CardService.newKeyValue()
                .setTopLabel('From')
                .setContent(sender)))
        .build();   // Don't forget to build the Card!
    return [exampleCard];
  }