Rozszerzenie interfejsu wiadomości

Dodatki do Google Workspace, które rozszerzają możliwości Gmaila, interfejsu, gdy użytkownik odczytuje wiadomości. Dzięki temu dodatki do Google Workspace automatyzujące zadania, które reagują; treści wiadomości, np. wyświetlanie, pobieranie czy wysyłanie, dodatkowe informacje dotyczące tej wiadomości.

Otwieranie interfejsu komunikatu o dodatku

Interfejs wiadomości dodatku można wyświetlić na 2 sposoby. Pierwszy sposób to otwarcie komunikat, gdy dodatek jest już otwarty (na przykład podczas wyświetlania stronie głównej dodatku w oknie skrzynki odbiorczej Gmaila). Druga metoda to uruchomić dodatek podczas wyświetlania wiadomości.

W obu przypadkach dodatek uruchomi odpowiedni funkcję aktywatora kontekstowego zdefiniowaną w manifest dodatku. Aktywator uruchamia się również wtedy, gdy użytkownik przełączy się na inną wiadomość, gdy dodatek jest nadal otwarty. Funkcja aktywatora kontekstowego tworzy interfejs wiadomości dla: którą Gmail wyświetla użytkownikowi.

Tworzenie dodatku do wiadomości

Aby dodać funkcję wiadomości do dodatku, wykonaj te ogólne czynności:

  1. Dodaj odpowiednie pola do projektu skryptu dodatku manifest (manifest), w tym zakresy wymagane dla wiadomości. Pamiętaj, aby dodać parametr pole aktywatora warunkowego do pliku manifestu z parametrem unconditional. {}.
  2. Wdróż funkcję aktywatora kontekstowego, która tworzy interfejs wiadomości gdy użytkownik wybierze dodatek w wiadomości.
  3. Zaimplementuj powiązane funkcje potrzebne do reagowania na interfejs użytkownika interakcje.

Reguły kontekstowe

Aby zapewnić użytkownikom pomoc podczas odczytywania wiadomości, Dodatki do Google Workspace mogą zdefiniować czynnik kontekstowy w pliku manifestu. Gdy użytkownik otwiera wiadomość w Gmailu (z otwartym dodatkiem) spełniającą warunki reguły * reguła uruchomienia reguły. Uruchomiony aktywator wykonuje funkcję aktywatora kontekstowego, która tworzy i zwraca go do Gmaila. W tym momencie użytkownik może zacząć z niej korzystać.

Aktywatory kontekstowe są zdefiniowane w projekcie dodatku manifest. Definicja reguły informuje Gmaila, która funkcja aktywuje funkcję, która powoduje uruchomienie warunków. Na przykład ten fragment kodu manifestu ustawia aktywator bezwarunkowy wywołujący po otwarciu wiadomości funkcję aktywatora onGmailMessageOpen():

{
  ...
  "addOns": {

    "common": {
      ...
    },
    "gmail": {
      "contextualTriggers": [
        {
          "unconditional": {},
          "onTriggerFunction": "onGmailMessageOpen"
        }
      ],
      ...
    },
    ...
  }
  ...
}

Funkcja aktywatora kontekstowego

Każdy aktywator kontekstowy musi mieć odpowiednią funkcję wyzwalacza który tworzy interfejs użytkownika dodatku. Tę funkcję określasz w tagu onTriggerFunction pliku manifestu . Implementujesz tę funkcję, aby akceptować action event obiekt i zwróci jeden Card lub tablica obiekty Card.

Gdy w przypadku danej wiadomości w Gmailu uruchamia się reguła kontekstowa, wywołuje ona i przekazuje ją action event obiekt. Funkcje aktywujące często używają identyfikatora wiadomości podanego przez ten obiekt zdarzenia aby pobrać tekst wiadomości i inne szczegóły za pomocą Usługa Gmail. Na przykład: może wyodrębnić treść wiadomości przy użyciu tych funkcji:

  // Activate temporary Gmail scopes, in this case to allow
  // the add-on to read message metadata and content.
  var accessToken = e.gmail.accessToken;
  GmailApp.setCurrentMessageAccessToken(accessToken);

  // Read message metadata and content. This requires the Gmail scope
  // https://www.googleapis.com/auth/gmail.addons.current.message.readonly.
  var messageId = e.gmail.messageId;
  var message = GmailApp.getMessageById(messageId);
  var subject = message.getSubject();
  var sender = message.getFrom();
  var body = message.getPlainBody();
  var messageDate = message.getDate();

  // Setting the access token with a gmail.addons.current.message.readonly
  // scope also allows read access to the other messages in the thread.
  var thread = message.getThread();
  var threadMessages = thread.getMessages();

  // Using this link can avoid the need to copy message or thread content
  var threadLink = thread.getPermalink();

Funkcja aktywująca może działać na tych danych, wyodrębniając informacje, które potrzebne do obsługi interfejsu. Może to być na przykład dodatek podsumowujący sprzedaż pozwalają zbierać dane dotyczące sprzedaży z treści wiadomości i porządkować je na karcie.

Funkcja aktywatora musi skompilować i zwrócić tablicę kompilacji Card obiektów. Poniższy przykład pokazuje dodatek z jedną kartą, po prostu wyświetla temat i nadawcę wiadomości:

  function onGmailMessageOpen(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // message metadata to be read.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var subject = message.getSubject();
    var sender = message.getFrom();

    // Create a card with a single card section and two widgets.
    // Be sure to execute build() to finalize the card construction.
    var exampleCard = CardService.newCardBuilder()
        .setHeader(CardService.newCardHeader()
            .setTitle('Example card'))
        .addSection(CardService.newCardSection()
            .addWidget(CardService.newKeyValue()
                .setTopLabel('Subject')
                .setContent(subject))
            .addWidget(CardService.newKeyValue()
                .setTopLabel('From')
                .setContent(sender)))
        .build();   // Don't forget to build the Card!
    return [exampleCard];
  }