Redactar borradores de mensajes

En un complemento de Google Workspace, puedes crear widgets. que tengan acciones vinculadas. Puedes usar una acción para redactar nuevos borradores de correos electrónicos y, opcionalmente, puedes completarlos con la información ingresada en la IU del complemento o la de un mensaje abierto. Por ejemplo, puedes tener un botón en tu IU de mensajes del complemento que crea una respuesta al mensaje abierto actualmente (propagado previamente) información del complemento.

Cuando se activa una acción que genera mensajes, Gmail ejecuta una devolución de llamada para compilar y mostrar el borrador. Luego, Gmail muestra ese borrador en su IU en una ventana estándar para redactar correos electrónicos, que el usuario puede editar y enviar según sea necesario.

Configura una acción para crear un borrador de mensaje

Si deseas configurar un widget para que inicie una acción de creación de borrador cuando se selecciona, debes hacer lo siguiente: haz lo siguiente:

  1. Asegúrate de que el manifiesto incluye el Permiso de action.compose:

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

    En su lugar, puedes usar un alcance más permisivo, pero solo si ese alcance es absolutamente necesario.

  2. Crea un objeto Action. y asociarla con una función de devolución de llamada que definas.

  3. Llama al elemento setComposeAction() del widget. Función del controlador del widget, proporcionando el Action y especificando ComposeEmailType.

  4. Implementa la función de devolución de llamada que ejecuta la acción de compilación en borrador. Esta la función recibe un objeto de evento como argumento. La función de devolución de llamada debe hacer lo siguiente:

    1. Crea un GmailDraft. .
    2. Compila un ComposeActionResponse objeto con ComposeActionResponseBuilder y la GmailDraft .
    3. Muestra el ComposeActionResponse compilado.

Puedes precompletar la GmailDraft. que creas en la función de devolución de llamada con destinatarios, un asunto, el cuerpo del mensaje y archivos adjuntos. Para completar el borrador, Los datos pueden provenir de cualquier fuente, pero, por lo general, se derivan de la información proporcionarse al complemento en sí, la información del mensaje abierto información recopilada de un servicio de terceros. El objeto de evento pasado a la función de devolución de llamada contiene el ID del mensaje abierto y otro complemento información que puedes usar para precompletar el borrador.

Puedes crear el borrador como un nuevo mensaje independiente o una respuesta a un mensaje existente. Esto lo controla el ComposeEmailType enumeración que se asignó al setComposeAction() Puedes crear borradores de respuestas como respuestas únicas o para responder a todos. mensajes nuevos.

Borradores independientes

Un borrador independiente inicia una conversación nueva y no es una respuesta a ninguna conversación existente. mensaje. Puedes crear un borrador independiente con una de las siguientes opciones: Funciones del servicio de Gmail:

Borradores de respuestas

Un borrador de respuesta forma parte de una conversación existente. Los borradores de respuestas son respuestas individuales que solo se envían al remitente de un mensaje o "responder a todos" borradores que se envían a todas las personas que recibieron ese mensaje. Puedes crear un responder borrador con uno de estos servicios de Gmail funciones:

Ejemplo

En el siguiente fragmento de código, se muestra cómo asignar una acción que compila una respuesta borrador a un botón.

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