Tworzenie wersji roboczych wiadomości

Kliknij, aby połączyć. Jeśli chcesz, aby dodatek zmieniał wersję roboczą aktualnie wyświetlaną przez użytkownika, rozwiń interfejs tworzenia wiadomości.

W dodatku możesz tworzyć widżety, które zawierają połączone działania. Możesz użyć polecenia, aby utworzyć nowe wersje robocze e-maili. Opcjonalnie możesz je uzupełnić za pomocą informacji wprowadzonych w interfejsie dodatku lub informacji z otwartej wiadomości. Możesz na przykład mieć przycisk w interfejsie wiadomości dodatku, który tworzy odpowiedź na aktualnie otwartą wiadomość wstępnie wypełnioną informacjami z dodatku.

Po wywołaniu działania kompilacji wiadomości Gmail wykonuje funkcję wywołania zwrotnego, aby utworzyć i zwrócić wersję roboczą. Następnie wersja robocza Gmaila jest wyświetlana w interfejsie użytkownika w standardowym oknie tworzenia e-maila, który użytkownik może potem edytować i wysyłać.

Konfigurowanie działania służącego do utworzenia wersji roboczej wiadomości

Aby skonfigurować widżet tak, aby rozpoczynał działanie kompilacji, musisz wykonać te czynności:

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

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

    Zamiast tego możesz użyć bardziej swobodnego zakresu, ale jest to możliwe tylko wtedy, gdy jest to bezwzględnie konieczne.

  2. Utwórz obiekt Action i powiąż 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 ComposeEmailType.

  4. Zaimplementuj funkcję wywołania zwrotnego, która wykonuje działanie kompilacji. Funkcja ta otrzymuje obiekt zdarzenia jako argument. 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óć kompilację ComposeActionResponse.

Plik GmailDraft utworzony w funkcji wywołania zwrotnego możesz wstępnie wypełnić adresatami, tematem, treścią wiadomości i załącznikami. Aby wypełnić wersję roboczą, dane mogą pochodzić z dowolnego źródła, ale zazwyczaj wychodzą z informacji dostarczonych w dodatku, informacji w otwartej wiadomości lub informacji zebranych z usługi zewnętrznej. Obiekt zdarzenia przekazany do funkcji wywołania zwrotnego zawiera otwarty identyfikator wiadomości i inne informacje o dodatku, które możesz wykorzystać do wstępnego uzupełniania wersji roboczej.

Możesz utworzyć wersję roboczą jako nową samodzielną wiadomość lub odpowiedź na istniejącą wiadomość. Kontroluje to wyliczenie ComposeEmailType przekazane do setComposeAction(). Wersje robocze odpowiedzi możesz tworzyć jako pojedyncze odpowiedzi lub wszystkie odpowiedzi.

Wersje robocze wolnostojące

Samodzielna wersja robocza rozpoczyna nowy wątek i nie stanowi odpowiedzi na istniejącą wiadomość. Możesz utworzyć samodzielną wersję roboczą za pomocą jednej z tych funkcji usługi Gmail:

Wersje robocze odpowiedzi

Wersja robocza odpowiedzi to część istniejącego wątku wiadomości. Wersje robocze odpowiedzi to pojedyncze odpowiedzi wysyłane tylko do nadawców wiadomości oraz wersje robocze odpowiedzi do wszystkich, którzy otrzymali tę wiadomość. Możesz utworzyć wersję roboczą odpowiedzi z użyciem jednej z tych funkcji usługi Gmail:

Przykład

Fragment kodu poniżej pokazuje, jak przypisać działanie tworzące wersję roboczą odpowiedzi na przycisk.

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