Verfassen von Nachrichtenentwürfen

In einem Google Workspace-Add-on können Sie Widgets erstellen. mit verknüpften Aktionen. Sie können eine Aktion zum Verfassen neuer E-Mail-Entwürfe, die optional mit Informationen, die in der Add-on-Benutzeroberfläche eingegeben wurden, oder Informationen aus einer geöffneten Nachricht. Sie können beispielsweise eine Schaltfläche in Ihrem Nachrichten-UI des Add-ons erstellt, die eine Antwort auf die aktuell geöffnete Nachricht erstellt, die mit Informationen aus dem Add-on.

Wenn eine Aktion zum Erstellen von Nachrichten ausgelöst wird, führt Gmail einen Callback aus. um den Entwurf zu erstellen und zurückzugeben. Daraufhin wird dieser Entwurf in Gmail Benutzeroberfläche in einem Standardfenster zum Verfassen von E-Mails, das der Nutzer bearbeiten und senden kann nach Bedarf anpassen.

Aktion zum Erstellen eines Nachrichtenentwurfs konfigurieren

Um ein Widget so zu konfigurieren, dass eine Aktion zum Erstellen eines Entwurfs gestartet wird, müssen Sie Gehen Sie so vor:

  1. Achte darauf, dass dein Manifest enthält die action.compose-Bereich:

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

    Sie können stattdessen auch einen weiter gefassten Bereich verwenden, sollten dies aber nur tun, wenn dass dieser Umfang absolut notwendig ist.

  2. Action-Objekt erstellen und mit einer Callback-Funktion verknüpfen, die Sie definieren.

  3. Rufen Sie die Methode setComposeAction() des Widgets auf. Widget-Handler-Funktion, mit dem Action und die Angabe der Eigenschaft ComposeEmailType

  4. Implementieren Sie die Callback-Funktion, die die Aktion zum Erstellen des Entwurfs ausführt. Dieses ein Ereignisobjekt erhält, als Argument verwenden. Die Callback-Funktion muss folgende Schritte ausführen:

    1. GmailDraft erstellen -Objekt enthält.
    2. ComposeActionResponse erstellen mithilfe von ComposeActionResponseBuilder Klasse und der GmailDraft -Objekt enthält.
    3. Geben Sie den erstellten ComposeActionResponse zurück.

Du kannst das Feld GmailDraft vorab ausfüllen. die Sie in der Callback-Funktion erstellen, Empfänger, Betreff, Nachrichtentext und Anhänge. Um den Entwurf auszufüllen, Daten können aus jeder Quelle stammen, aber in der Regel stammen sie aus Informationen, die dem Add-on selbst zur Verfügung gestellt wurden, Informationen, die von einem Drittanbieter-Dienst stammen. Die Ereignisobjekt die an die Callback-Funktion übergeben wurde, enthält die ID der geöffneten Nachricht und ein anderes Add-on. mit denen Sie den Entwurf vorausfüllen können.

Sie können den Entwurf entweder als eigenständige Nachricht oder als Antwort auf eine vorhandene Nachricht. Dies wird vom ComposeEmailType Enum für die setComposeAction() Du kannst Antwortentwürfe als einzelne Antworten oder „Allen antworten“ erstellen. Nachrichten.

Eigenständige Entwürfe

Mit einem eigenständigen Entwurf wird ein neuer Thread gestartet und ist keine Antwort auf eine bestehende Unterhaltung angezeigt. Sie haben folgende Möglichkeiten, einen eigenständigen Entwurf zu erstellen: Funktionen des Gmail-Dienstes:

Antwortentwürfe

Ein Antwortentwurf ist Teil eines bestehenden Nachrichten-Threads. Antwortentwürfe sind entweder einzelne Antworten, die nur an den Absender einer Nachricht oder „Allen antworten“ gesendet werden Entwürfe, die an alle gesendet werden, die diese Nachricht erhalten haben. Sie können ein Antwortentwurf mit einem dieser Gmail-Dienste beantworten Funktionen:

Beispiel

Das folgende Code-Snippet zeigt, wie Sie eine Aktion zuweisen, die eine Antwort erstellt. als Entwurf zu einer Schaltfläche.

  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();
  }