Tworzenie wersji roboczych wiadomości

W dodatku Google Workspace możesz tworzyć widżety, które zawierają połączone działania. Do utworzenia nowych wersji roboczych e-maili możesz użyć odpowiednich działań. Opcjonalnie możesz je wypełnić danymi z interfejsu dodatku lub danymi z otwartej wiadomości. Na przykład w interfejsie wiadomości dodatku możesz mieć przycisk, który tworzy odpowiedź na aktualnie otwartą wiadomość zawierającą informacje z dodatku.

Po uruchomieniu działania tworzącego wiadomości Gmail wykonuje funkcję wywołania zwrotnego, aby skompilować i zwrócić wersję roboczą. Gmail wyświetli tę wersję roboczą w standardowym oknie tworzenia e-maila, które użytkownik może edytować i wysłać.

Konfigurowanie działania w celu utworzenia wersji roboczej wiadomości

Aby skonfigurować widżet, po wybraniu rozpoczynania działania tworzenia wersji roboczej:

  1. Sprawdź, czy plik manifestu zawiera zakres action.compose:

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

    Możesz zamiast tego użyć bardziej mniej rygorystycznego zakresu, ale należy to robić 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, podając mu obiekt Action i określając ComposeEmailType.

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

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

Obiekt GmailDraft utworzony w funkcji wywołania zwrotnego możesz wstępnie uzupełnić, podając adresatów, temat, treść wiadomości i załączniki. Aby uzupełnić wersję roboczą, dane mogą pochodzić z dowolnego źródła, ale zwykle są to informacje dostarczone w samym dodatku, informacje z otwartej wiadomości lub informacje zebrane z usługi zewnętrznej. Obiekt zdarzenia przekazany do funkcji wywołania zwrotnego zawiera identyfikator otwartej wiadomości i inne informacje o dodatku, których można użyć do wstępnego wypełnienia wersji roboczej.

Wersje robocze możesz utworzyć jako nową, samodzielną wiadomość lub jako odpowiedź na istniejącą wiadomość. Decyduje o tym wyliczenie ComposeEmailType podane w elemencie setComposeAction(). Możesz tworzyć wersje robocze odpowiedzi jako pojedyncze odpowiedzi lub wszystkie wiadomości.

Samodzielne wersje robocze

Samodzielna wersja robocza uruchamia nowy wątek i nie jest odpowiedzią na istniejącą wiadomość. Możesz utworzyć samodzielną wersję roboczą, korzystając z jednej z tych funkcji usługi Gmaila:

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 typu „odpowiedz wszystkim” wysyłane do wszystkich osób, które otrzymały daną wiadomość. Możesz utworzyć wersję roboczą odpowiedzi, używając jednej z tych funkcji usługi Gmail:

Przykład

Poniższy fragment kodu pokazuje, jak przypisać działanie tworzące wersję roboczą odpowiedzi do przycisku.

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