W dodatku Google Workspace możesz tworzyć widżety zawierające połączone działania. Możesz użyć polecenia, aby utworzyć nowe wersje robocze e-maili. Opcjonalnie możesz je uzupełnić za pomocą informacji wprowadzonych w interfejsie dodatku lub informacji z otwartej wiadomości. Możesz na przykład mieć przycisk w interfejsie wiadomości dodatku, który tworzy odpowiedź na aktualnie otwartą wiadomość wstępnie wypełnioną informacjami z dodatku.
Po wywołaniu działania kompilacji wiadomości Gmail wykonuje funkcję wywołania zwrotnego, aby utworzyć i zwrócić wersję roboczą. Następnie wersja robocza Gmaila jest wyświetlana w interfejsie użytkownika w standardowym oknie tworzenia e-maila, który użytkownik może potem edytować i wysyłać.
Konfigurowanie działania służącego do utworzenia wersji roboczej wiadomości
Aby skonfigurować widżet tak, aby rozpoczynał działanie kompilacji, musisz wykonać te czynności:
Upewnij się, że plik manifestu zawiera zakres
action.compose
:https://www.googleapis.com/auth/gmail.addons.current.action.compose
Zamiast tego możesz użyć bardziej swobodnego zakresu, ale jest to możliwe tylko wtedy, gdy jest to bezwzględnie konieczne.
Utwórz obiekt
Action
i powiąż go ze zdefiniowaną przez siebie funkcją wywołania zwrotnego.Wywołaj funkcję obsługi widżetu
setComposeAction()
, podając obiektAction
i określającComposeEmailType
.Zaimplementuj funkcję wywołania zwrotnego, która wykonuje działanie kompilacji. Funkcja ta otrzymuje obiekt zdarzenia jako argument. Funkcja wywołania zwrotnego musi wykonać te czynności:
- Utwórz obiekt
GmailDraft
. - Utwórz obiekt
ComposeActionResponse
za pomocą klasyComposeActionResponseBuilder
i obiektuGmailDraft
. - Zwróć kompilację
ComposeActionResponse
.
- Utwórz obiekt
Plik GmailDraft
utworzony w funkcji wywołania zwrotnego możesz wstępnie wypełnić adresatami, tematem, treścią wiadomości i załącznikami. Aby wypełnić wersję roboczą, dane mogą pochodzić z dowolnego źródła, ale zazwyczaj wychodzą z informacji dostarczonych w dodatku, informacji w otwartej wiadomości lub informacji zebranych z usługi zewnętrznej. Obiekt zdarzenia przekazany do funkcji wywołania zwrotnego zawiera otwarty identyfikator wiadomości i inne informacje o dodatku, które możesz wykorzystać do wstępnego uzupełniania wersji roboczej.
Możesz utworzyć wersję roboczą jako nową samodzielną wiadomość lub odpowiedź na istniejącą wiadomość. Kontroluje to wyliczenie ComposeEmailType
przekazane do setComposeAction()
.
Wersje robocze odpowiedzi możesz tworzyć jako pojedyncze odpowiedzi lub wszystkie odpowiedzi.
Wersje robocze wolnostojące
Samodzielna wersja robocza rozpoczyna nowy wątek i nie stanowi odpowiedzi na istniejącą wiadomość. Możesz utworzyć samodzielną wersję roboczą za pomocą jednej z tych funkcji usługi Gmail:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
Wersje robocze odpowiedzi
Wersja robocza odpowiedzi to część istniejącego wątku wiadomości. Wersje robocze odpowiedzi to pojedyncze odpowiedzi wysyłane tylko do nadawców wiadomości oraz wersje robocze odpowiedzi do wszystkich, którzy otrzymali tę wiadomość. Możesz utworzyć wersję roboczą odpowiedzi z użyciem jednej z tych funkcji usługi Gmail:
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)
Przykład
Fragment kodu poniżej pokazuje, jak przypisać działanie tworzące wersję roboczą odpowiedzi na przycisk.
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();
}