Escrever mensagens de rascunho

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Em um complemento Google Workspace , você pode criar widgets que têm ações vinculadas. Você pode usar uma ação para escrever novos rascunhos de e-mail, opcionalmente preenchendo-os usando informações inseridas na IU do complemento ou informações de uma mensagem aberta. Por exemplo, você pode ter um botão na IU de mensagem do complemento que cria uma resposta à mensagem aberta pré-preenchida com informações do complemento.

Quando uma ação que cria mensagens é acionada, o Gmail executa uma função de callback para criar e retornar o rascunho. Depois, o Gmail exibirá esse rascunho na IU em uma janela padrão de escrita de e-mail, que o usuário pode editar e enviar conforme necessário.

Como configurar uma ação para criar uma mensagem de rascunho

Para configurar um widget e iniciar uma ação de criação de rascunho quando selecionado, você precisa fazer o seguinte:

  1. Verifique se o manifesto inclui o escopo action.compose:

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

    É possível usar mais um escopo permissivo, mas isso só será necessário se esse escopo for absolutamente necessário.

  2. Crie um objeto Action e o associe a uma função de callback definida por você.

  3. Chame a função de mão de widget do setComposeAction() do widget, fornecendo o objeto Action e especificando a ComposeEmailType.

  4. Implemente a função de callback que executa a ação de criação do rascunho. Essa função recebe um objeto de evento como argumento. A função de callback precisa fazer o seguinte:

    1. Crie um objeto GmailDraft.
    2. Crie um objeto ComposeActionResponse usando a classe ComposeActionResponseBuilder e o objeto GmailDraft.
    3. Retorne o ComposeActionResponse criado.

Você pode preencher automaticamente o GmailDraft criado na função de callback com destinatários, um assunto, um corpo de mensagens e anexos. Para preencher o rascunho, os dados podem vir de qualquer fonte, mas normalmente são provenientes de informações fornecidas ao próprio complemento, às informações na mensagem aberta ou às informações coletadas de um serviço de terceiros. O objeto de evento transmitido para a função de callback contém o ID da mensagem aberta e outras informações complementares que podem ser usadas para preencher o rascunho.

É possível criar o rascunho como uma nova mensagem autônoma ou uma resposta a uma mensagem existente. Isso é controlado pela enum ComposeEmailType dada ao setComposeAction(). Você pode criar rascunhos de respostas como respostas únicas ou 'responder-todos' mensagens.

Rascunhos independentes

Um rascunho autônomo inicia uma nova linha de execução e não é uma resposta a nenhuma mensagem existente. Você pode criar um rascunho independente com uma das seguintes funções do serviço do Gmail:

Rascunhos de respostas

O rascunho de resposta faz parte de um agrupamento de mensagens. Os rascunhos de resposta são respostas únicas enviadas apenas para o remetente de uma mensagem ou "quot;reply all" rascunhos enviados a todos que receberam essa mensagem". Você pode criar um rascunho de resposta com uma destas funções do serviço do Gmail:

Exemplo

O snippet de código a seguir mostra como atribuir uma ação que cria um rascunho de resposta a um botão.

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