Tworzenie wersji roboczych wiadomości

W dodatku do Google Workspace możesz tworzyć widżety, które mają połączone 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 tworzy odpowiedź na aktualnie otwartą wiadomość z wstępnie wypełnionymi informacjami z dodatku.

Gdy zostanie wywołane działanie, które tworzy wiadomości, Gmail wykonuje funkcję wywołania zwrotnego, aby utworzyć i zwrócić wersję roboczą. Gmail wyświetla ten szkic w interfejsie w standardowym oknie tworzenia e-maila, który użytkownik może edytować i wysłać w razie potrzeby.

Konfigurowanie działania, aby utworzyć wersję roboczą wiadomości

Aby skonfigurować widżet tak, aby po jego wybraniu uruchamiał działanie polegające na tworzeniu wersji roboczej:

  1. Upewnij się, że plik manifestu zawiera action.composezakres:

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

    Możesz użyć bardziej liberalnego zakresu, ale tylko wtedy, gdy jest to absolutnie konieczne.

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

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

  4. Zaimplementuj funkcję wywołania zwrotnego, która wykonuje działanie tworzenia projektu. Jej argumentem jest obiekt zdarzenia. Funkcja wywołania zwrotnego musi:

    1. Utwórz obiekt GmailDraft.
    2. Utwórz obiekt ComposeActionResponse za pomocą klasy ComposeActionResponseBuilder i obiektu GmailDraft.
    3. Zwracaj zbudowane ComposeActionResponse.

Możesz wstępnie wypełnić GmailDraft utworzone w funkcji wywołania zwrotnego pola odbiorcy, temat, treść wiadomości i załączniki. Do wypełnienia wersji roboczej dane mogą pochodzić z dowolnego źródła, ale zwykle pochodzą z informacji przekazanych samemu dodatkowi, informacji w otwartej wiadomości lub informacji zebranych z usługi innej firmy. Obiekt zdarzenia przekazany do funkcji wywołania zwrotnego zawiera identyfikator otwartej wiadomości i inne informacje dotyczące dodatku, których możesz użyć do wstępnego wypełnienia wersji roboczej.

Możesz utworzyć wersję roboczą jako nową wiadomość samodzielną lub jako odpowiedź na istniejącą wiadomość. Jest ona kontrolowana przez parametr ComposeEmailType enum przekazany do funkcji setComposeAction(). Możesz tworzyć wersje robocze odpowiedzi jako pojedyncze odpowiedzi lub odpowiedzi „odpowiedz wszystkim”.

Samodzielne wersje robocze

Samodzielny szkic rozpoczyna nowy wątek i nie jest odpowiedzią na żadną istniejącą wiadomość. Możesz utworzyć samodzielny projekt za pomocą 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 wysyłane tylko do nadawcy wiadomości lub wersje robocze odpowiedzi „odpowiedz wszystkim”, które są wysyłane do wszystkich, którzy otrzymali tę wiadomość. Wersję roboczą odpowiedzi możesz utworzyć za pomocą jednej z tych funkcji usługi Gmail:

Przykład

Ten fragment kodu pokazuje, jak przypisać do przycisku działanie, które tworzy projekt 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();
  }