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:
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.
Crea un objeto
Action
. y asociarla con una función de devolución de llamada que definas.Llama al elemento
setComposeAction()
del widget. Función del controlador del widget, proporcionando elAction
y especificandoComposeEmailType
.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:
- Crea un
GmailDraft
. . - Compila un
ComposeActionResponse
objeto conComposeActionResponseBuilder
y laGmailDraft
. - Muestra el
ComposeActionResponse
compilado.
- Crea un
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:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
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:
GmailMessage.createDraftReply(body)
GmailMessage.createDraftReply(body, options)
GmailMessage.createDraftReplyAll(body)
GmailMessage.createDraftReplyAll(body, options)
GmailThread.createDraftReply(body)
GmailThread.createDraftReply(body, options)
GmailThread.createDraftReplyAll(body)
GmailThread.createDraftReplyAll(body, options)
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();
}