כתיבה של טיוטות הודעות

בתוסף של Google Workspace אפשר ליצור ווידג'טים שכוללים פעולות מקושרות. תוכלו להשתמש בפעולה כדי לכתוב טיוטות חדשות של אימיילים, וגם למלא אותן באמצעות מידע שהוזן בממשק המשתמש של התוסף או מידע מהודעה פתוחה. לדוגמה, בממשק המשתמש של ההודעות של התוסף מופיע לחצן שיוצר תשובה להודעה שפתוחה כרגע ומאוכלסת מראש במידע מהתוסף.

כשמופעלת פעולה שיוצרת הודעות, Gmail מפעילה פונקציית קריאה חוזרת כדי ליצור ולהחזיר את הטיוטה. לאחר מכן Gmail מציג את הטיוטה בממשק המשתמש שלו בחלון כתיבת אימייל רגיל, שבו המשתמש יכול לערוך ולשלוח לפי הצורך.

הגדרת פעולה לבניית הודעת טיוטה

כדי להגדיר ווידג'ט כך שיתחיל פעולה של בניית טיוטה כשהוא נבחר, צריך לבצע את הפעולות הבאות:

  1. ודאו שהמניפסט כולל את ההיקף של action.compose:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

    במקום זאת תוכלו להשתמש בהיקף מגביל יותר, אבל כדאי לעשות זאת רק אם ההיקף הזה הכרחי.

  2. יוצרים אובייקט Action ומשייכים אותו לפונקציית קריאה חוזרת שמגדירים.

  3. מפעילים את פונקציית ה-handler של הווידג'ט setComposeAction(), מספקים לה את האובייקט Action ומציינים את ComposeEmailType.

  4. מטמיעים את פונקציית הקריאה החוזרת שמבצעת את הפעולה ליצירת טיוטה. הפונקציה מקבלת אובייקט אירוע כארגומנט. פונקציית הקריאה החוזרת חייבת לבצע את הפעולות הבאות:

    1. יוצרים אובייקט GmailDraft.
    2. יצירת אובייקט ComposeActionResponse באמצעות המחלקה ComposeActionResponseBuilder והאובייקט GmailDraft.
    3. מחזירים את ה-ComposeActionResponse המובנה.

אתם יכולים למלא מראש את GmailDraft שיוצרים בפונקציית הקריאה החוזרת בנמענים, בנושא, בגוף ההודעה ובקבצים המצורפים. מילוי הטיוטה יכול להגיע מכל מקור, אך בדרך כלל הם נגזרים ממידע שסופק לתוסף עצמו, ממידע שמופיע בהודעה הפתוחה או ממידע שנאסף משירות של צד שלישי. אובייקט האירוע שהועבר אל פונקציית הקריאה החוזרת מכיל את מזהה ההודעה הפתוחה ומידע נוסף של התוסף, שאפשר להשתמש בו כדי למלא מראש את הטיוטה.

אפשר ליצור את הטיוטה כהודעה עצמאית חדשה או כתשובה להודעה קיימת. השדה הזה נשלט על ידי המאפיין ComposeEmailType שניתן למאפיין setComposeAction(). אפשר ליצור טיוטות של תשובות כהודעות בודדות או הודעות מסוג 'תשובה לכולם'.

טיוטות עצמאיות

טיוטה נפרדת מתחילה שרשור חדש ולא תשובה להודעה קיימת. אתם יכולים ליצור טיוטה עצמאית באמצעות אחת מהפונקציות הבאות בשירות Gmail:

טיוטות של תשובות

טיוטה של תשובה היא חלק משרשור הודעות קיים. טיוטות של תשובות הן תשובות בודדות שנשלחות רק לשולח של ההודעה, או טיוטות של 'תשובה לכולם' שנשלחות לכל מי שקיבל את ההודעה. תוכלו ליצור טיוטה של תשובה באמצעות אחת מהפונקציות הבאות של שירות Gmail:

דוגמה

קטע הקוד הבא מראה איך להקצות פעולה שיוצרת טיוטה של תשובה ללחצן.

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(
          composeAction,
          CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...

  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }