Dans un module complémentaire , vous pouvez créer des widgets associés à des actions. Vous pouvez utiliser une action pour rédiger des brouillons d'e-mails, en les remplissant éventuellement à l'aide des informations saisies dans l'interface utilisateur du module complémentaire ou des informations provenant d'un message ouvert. Par exemple, vous pouvez ajouter un bouton dans l’interface utilisateur de message de votre module complémentaire qui crée une réponse au message actuellement ouvert, préremplie avec des informations provenant du module complémentaire.
Lorsqu'une action qui crée des messages est déclenchée, Gmail exécute une fonction de rappel pour créer et renvoyer le brouillon. Gmail affiche ensuite ce brouillon dans son interface utilisateur dans une fenêtre de rédaction d'e-mail standard, que l'utilisateur peut ensuite modifier et envoyer si nécessaire.
Configurer une action pour créer un brouillon de message
Pour configurer un widget afin qu'il lance une action de création de brouillon lorsqu'il est sélectionné, procédez comme suit :
Assurez-vous que votre fichier manifeste inclut le
action.composechamp d'application :https://www.googleapis.com/auth/gmail.addons.current.action.composeVous pouvez utiliser un champ d'application plus permissif, mais ne le faites que si cela est absolument nécessaire.
Créez un
Actionobjet et associez-le à une fonction de rappel que vous définissez.Appelez la fonction de gestionnaire de widget
setComposeActiondu widget, en lui fournissant l'Actionet en spécifiant leComposeEmailType.Implémentez la fonction de rappel qui exécute l'action de création de brouillon. Cette fonction reçoit un objet d'événement comme argument. La fonction de rappel doit effectuer les opérations suivantes :
- Créez un
GmailDraftobjet. - Créez un
ComposeActionResponseobjet à l'aide de laComposeActionResponseBuilderclasse et de l'GmailDraftobjet. - Renvoie l'objet créé
ComposeActionResponse.
- Créez un
Vous pouvez préremplir le GmailDraft
que vous créez dans la fonction de rappel avec
des destinataires, un objet, un corps de message et des pièces jointes. Pour remplir le brouillon, les données peuvent provenir de n'importe quelle source, mais elles proviennent généralement des informations fournies au module complémentaire lui-même, des informations contenues dans le message ouvert ou des informations collectées auprès d'un service tiers. L'
objet d'événement transmis à la fonction de rappel
contient l'ID du message ouvert et d'autres informations sur le module complémentaire
que vous pouvez utiliser pour préremplir le brouillon.
Vous pouvez créer le brouillon en tant que nouveau message autonome ou en réponse à un message existant. Ce paramètre est contrôlé par l'
ComposeEmailType
énumération fournie à la
setComposeAction.
Vous pouvez créer des brouillons de réponse en tant que réponses uniques ou messages "Répondre à tous".
Brouillons autonomes
Un brouillon autonome démarre un nouveau fil de discussion et ne répond à aucun message existant. Vous pouvez créer un brouillon autonome avec l'une des fonctions de service Gmail suivantes :
GmailApp.createDraft(recipient, subject, body)GmailApp.createDraft(recipient, subject, body, options)
Brouillons de réponse
Un brouillon de réponse fait partie d'un fil de discussion existant. Les brouillons de réponse sont des réponses uniques qui ne sont envoyées qu'à l'expéditeur d'un message ou des brouillons "Répondre à tous" qui sont envoyés à tous les destinataires de ce message. Vous pouvez créer un brouillon de réponse avec l'une des fonctions de service Gmail suivantes :
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)
Exemple
L'extrait de code suivant montre comment attribuer une action qui crée un brouillon de réponse à un bouton.
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 previously
// specified.
return CardService.newComposeActionResponseBuilder()
.setGmailDraft(draft).build();
}