Composizione di bozze di messaggi

In un componente aggiuntivo di Google Workspace puoi creare widget con azioni collegate. Puoi utilizzare un'azione per scrivere nuove bozze di email, facoltativamente compilandole informazioni inserite nell'interfaccia utente del componente aggiuntivo o informazioni di un messaggio aperto. Ad esempio, puoi avere un pulsante nella UI per i messaggi del componente aggiuntivo che crea una risposta al messaggio attualmente aperto precompilato con le informazioni dal componente aggiuntivo.

Quando viene attivata un'azione che crea messaggi, Gmail esegue un callback per creare e restituire la bozza. Gmail quindi mostra la bozza nel suo UI in una finestra di composizione di email standard, che l'utente può quindi modificare e inviare dell'oggetto o eliminare definitivamente una versione archiviata, in base alle necessità.

Configurare un'azione per creare la bozza di un messaggio

Per configurare un widget per l'avvio di un'azione di creazione di bozze quando viene selezionata, devi segui questi passaggi:

  1. Assicurati che il file manifest include Ambito action.compose:

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

    Puoi invece utilizzare un ambito più permissivo, ma dovresti farlo solo se è assolutamente necessario.

  2. Creare un oggetto Action e associarla a una funzione di callback che definisci.

  3. Chiama il pulsante setComposeAction() del widget funzione di gestore widget, fornendo Action e specificare ComposeEmailType

  4. Implementare la funzione di callback che esegue l'azione di creazione della bozza. Questo alla funzione viene assegnato un oggetto evento come argomento. La funzione di callback deve:

    1. Crea una GmailDraft .
    2. Crea una ComposeActionResponse utilizzando l'oggetto ComposeActionResponseBuilder e il GmailDraft .
    3. Restituisci il ComposeActionResponse costruito.

Puoi precompilare GmailDraft che crei nella funzione di callback destinatari, un oggetto, il corpo di un messaggio e gli allegati. Per compilare la bozza: i dati possono provenire da qualsiasi origine, ma in genere derivano da informazioni fornite al componente aggiuntivo stesso, alle informazioni nel messaggio aperto o raccolte da un servizio di terze parti. La oggetto evento passato alla funzione di callback contiene l'ID messaggio aperto e altro componente aggiuntivo informazioni che puoi utilizzare per precompilare la bozza.

Puoi creare la bozza come nuovo messaggio autonomo o come risposta un messaggio esistente. Ciò è controllato ComposeEmailType enum assegnato setComposeAction(). Puoi creare bozze di risposta come risposte singole o "reply-all" messaggi.

Bozze autonome

Una bozza autonoma avvia un nuovo thread e non è una risposta a messaggi esistenti . Puoi creare una bozza autonoma con uno dei seguenti elementi: Funzioni del servizio Gmail:

Bozze di risposta

La bozza di una risposta fa parte di un thread di messaggi esistente. Le bozze delle risposte sono risposte singole che vengono inviate soltanto al mittente di un messaggio o "rispondi a tutti" bozze che vengono inviate a tutti coloro che hanno ricevuto il messaggio. Puoi creare un bozza di risposta con uno di questi servizi Gmail :

Esempio

Il seguente snippet di codice mostra come assegnare un'azione che crea una risposta in un pulsante.

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