In einem Google Workspace-Add-on können Sie Widgets erstellen. mit verknüpften Aktionen. Sie können eine Aktion zum Verfassen neuer E-Mail-Entwürfe, die optional mit Informationen, die in der Add-on-Benutzeroberfläche eingegeben wurden, oder Informationen aus einer geöffneten Nachricht. Sie können beispielsweise eine Schaltfläche in Ihrem Nachrichten-UI des Add-ons erstellt, die eine Antwort auf die aktuell geöffnete Nachricht erstellt, die mit Informationen aus dem Add-on.
Wenn eine Aktion zum Erstellen von Nachrichten ausgelöst wird, führt Gmail einen Callback aus. um den Entwurf zu erstellen und zurückzugeben. Daraufhin wird dieser Entwurf in Gmail Benutzeroberfläche in einem Standardfenster zum Verfassen von E-Mails, das der Nutzer bearbeiten und senden kann nach Bedarf.
Aktion zum Erstellen eines Nachrichtenentwurfs konfigurieren
Um ein Widget so zu konfigurieren, dass eine Aktion zum Erstellen eines Entwurfs gestartet wird, müssen Sie Gehen Sie so vor:
Achte darauf, dass dein Manifest enthält die
action.compose
-Bereich:https://www.googleapis.com/auth/gmail.addons.current.action.compose
Sie können stattdessen auch einen weiter gefassten Bereich verwenden, sollten dies aber nur tun, wenn dass dieser Umfang absolut notwendig ist.
Action
-Objekt erstellen und mit einer Callback-Funktion verknüpfen, die Sie definieren.Rufen Sie die Methode
setComposeAction()
des Widgets auf. Widget-Handler-Funktion, mit demAction
und die Angabe der EigenschaftComposeEmailType
Implementieren Sie die Callback-Funktion, die die Aktion zum Erstellen des Entwurfs ausführt. Dieses ein Ereignisobjekt erhält, als Argument verwenden. Die Callback-Funktion muss folgende Schritte ausführen:
GmailDraft
erstellen -Objekt enthält.ComposeActionResponse
erstellen mithilfe vonComposeActionResponseBuilder
Klasse und derGmailDraft
-Objekt enthält.- Geben Sie den erstellten
ComposeActionResponse
zurück.
Du kannst das Feld GmailDraft
vorab ausfüllen.
die Sie in der Callback-Funktion erstellen,
Empfänger, Betreff, Nachrichtentext und Anhänge. Um den Entwurf auszufüllen,
Daten können aus jeder Quelle stammen, aber in der Regel stammen sie aus Informationen,
die dem Add-on selbst zur Verfügung gestellt wurden,
Informationen, die von einem Drittanbieter-Dienst stammen. Die
Ereignisobjekt
die an die Callback-Funktion übergeben wurde, enthält die ID der geöffneten Nachricht und ein anderes Add-on.
mit denen Sie den Entwurf
vorausfüllen können.
Sie können den Entwurf entweder als eigenständige Nachricht oder als Antwort auf
eine vorhandene Nachricht. Dies wird vom
ComposeEmailType
Enum für die
setComposeAction()
Du kannst Antwortentwürfe als einzelne Antworten oder „Allen antworten“ erstellen. Nachrichten.
Eigenständige Entwürfe
Mit einem eigenständigen Entwurf wird ein neuer Thread gestartet und ist keine Antwort auf eine bestehende Unterhaltung . Sie haben folgende Möglichkeiten, einen eigenständigen Entwurf zu erstellen: Funktionen des Gmail-Dienstes:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
Antwortentwürfe
Ein Antwortentwurf ist Teil eines bestehenden Nachrichten-Threads. Antwortentwürfe sind entweder einzelne Antworten, die nur an den Absender einer Nachricht oder „Allen antworten“ gesendet werden Entwürfe, die an alle gesendet werden, die diese Nachricht erhalten haben. Sie können ein Antwortentwurf mit einem dieser Gmail-Dienste beantworten Funktionen:
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)
Beispiel
Das folgende Code-Snippet zeigt, wie Sie eine Aktion zuweisen, die eine Antwort erstellt. als Entwurf zu einer Schaltfläche.
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();
}