Tworzenie wersji roboczych wiadomości

W dodatku do Google Workspace możesz tworzyć widżety, które mają powiązane działania. Za pomocą działania możesz tworzyć nowe wersje robocze e-maili, opcjonalnie wypełniając je informacjami wprowadzonymi w interfejsie dodatku lub informacjami z otwartej wiadomości. Możesz na przykład umieścić w interfejsie wiadomości dodatku przycisk, który utworzy odpowiedź na aktualnie otwartą wiadomość z wstępnie wypełnionymi informacjami z dodatku.

Gdy zostanie wywołana czynność, która tworzy wiadomości, Gmail wykonuje funkcję wywołania zwrotnego, aby utworzyć i zwrócić wersję roboczą. Gmail wyświetli wersję roboczą w interfejsie w standardowym oknie tworzenia wiadomości, które użytkownik może w razie potrzeby edytować i wysłać.

Konfigurowanie działania, które tworzy wersję roboczą wiadomości

Aby skonfigurować widżet tak, aby po wybraniu rozpoczynał działanie tworzenia wersji roboczej, musisz wykonać te czynności:

  1. Upewnij się, że Twój manifest zawiera action.compose zakres:

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

    Możesz zamiast tego użyć zakresu o większych uprawnieniach, ale tylko wtedy, gdy jest to absolutnie konieczne.

  2. Utwórz obiekt Action i powiąż go ze zdefiniowaną przez siebie funkcją wywołania zwrotnego.

  3. Wywołaj setComposeAction() funkcję obsługi widżetu widżetu, przekazując jej obiekt Action i określając ComposeEmailType.

  4. Zaimplementuj funkcję wywołania zwrotnego, która wykonuje działanie tworzenia wersji roboczej. Ta funkcja otrzymuje jako argument obiekt zdarzenia. Funkcja wywołania zwrotnego musi wykonać te czynności:

    1. Utwórz obiekt GmailDraft.
    2. Utwórz obiekt ComposeActionResponse za pomocą klasy ComposeActionResponseBuilder i obiektu GmailDraft.
    3. Zwróć utworzony obiekt ComposeActionResponse.

Możesz wstępnie wypełnić GmailDraft utworzony w funkcji wywołania zwrotnego odbiorcami, tematem, treścią wiadomości i załącznikami. Aby wypełnić wersję roboczą, dane mogą pochodzić z dowolnego źródła, ale zwykle są to informacje przekazane do samego dodatku, informacje w otwartej wiadomości lub informacje zebrane z usługi innej firmy. Obiekt zdarzenia przekazywany do funkcji wywołania zwrotnego zawiera identyfikator otwartej wiadomości i inne informacje o dodatku, których możesz użyć do wstępnego wypełnienia wersji roboczej.

Możesz utworzyć wersję roboczą jako nową, samodzielną wiadomość lub jako odpowiedź na istniejącą wiadomość. Określa to wyliczenie ComposeEmailType przekazane do setComposeAction(). Możesz tworzyć wersje robocze odpowiedzi jako pojedyncze odpowiedzi lub wiadomości „odpowiedz wszystkim”.

Wersje samodzielne

Samodzielna wersja robocza rozpoczyna nowy wątek i nie jest odpowiedzią na żadną istniejącą wiadomość. Możesz utworzyć samodzielny projekt, korzystając z jednej z tych funkcji usługi Gmail:

Wersje robocze odpowiedzi

Wersja robocza odpowiedzi jest częścią istniejącego wątku wiadomości. Wersje robocze odpowiedzi to pojedyncze odpowiedzi, które są wysyłane tylko do nadawcy wiadomości, lub wersje robocze „Odpowiedz wszystkim”, które są wysyłane do wszystkich odbiorców wiadomości. Możesz utworzyć wersję roboczą odpowiedzi za pomocą jednej z tych funkcji usługi Gmail:

Przykład

Ten fragment kodu pokazuje, jak przypisać do przycisku działanie, które tworzy wersję roboczą odpowiedzi.

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