Google Workspace eklentilerinde, işlemlere bağlı widget'lar oluşturabilirsiniz. Yeni e-posta taslakları oluşturmak için, isteğe bağlı olarak eklenti kullanıcı arayüzüne girilen bilgileri veya açık bir iletideki bilgileri kullanarak yeni e-posta taslakları oluşturmak için bir işlem kullanabilirsiniz. Örneğin, eklentinizin mesaj kullanıcı arayüzünde, eklentideki bilgilerle önceden doldurulmuş olarak açık olan mesaja bir yanıt oluşturan bir düğmeniz olabilir.
Mesaj oluşturan bir işlem tetiklendiğinde Gmail, taslağı oluşturmak ve döndürmek için bir geri çağırma işlevi yürütür. Ardından Gmail bu taslağı kullanıcı arayüzünde standart bir e-posta oluşturma penceresinde görüntüler. Kullanıcı bu e-postayı gerektiğinde düzenleyip gönderebilir.
Taslak ileti oluşturmak için bir işlem yapılandırma
Bir widget'ı seçildiğinde taslak oluşturma işlemini başlatacak şekilde yapılandırmak için aşağıdakileri yapmanız gerekir:
Manifest dosyanızın
action.compose
kapsamını içerdiğinden emin olun:https://www.googleapis.com/auth/gmail.addons.current.action.compose
Bunun yerine daha geniş kapsamlı bir kapsam kullanabilirsiniz ancak bu kapsamı yalnızca bu kapsam kesinlikle gerekliyse kullanmalısınız.
Bir
Action
nesnesi oluşturun ve bunu tanımladığınız bir geri çağırma işleviyle ilişkilendirin.Widget'ın
setComposeAction()
widget işleyici işlevini çağırarak widget'aAction
nesnesini sağlayın veComposeEmailType
öğesini belirtin.Taslak oluşturma işlemini yürüten geri çağırma işlevini uygulayın. Bu işleve bağımsız değişken olarak bir etkinlik nesnesi verilir. Geri çağırma işlevi aşağıdakileri yapmalıdır:
GmailDraft
nesnesi oluşturun.ComposeActionResponseBuilder
sınıfını veGmailDraft
nesnesini kullanarak birComposeActionResponse
nesnesi oluşturun.- Derlemeyi
ComposeActionResponse
geri verin.
Geri çağırma işlevinde oluşturduğunuz GmailDraft
öğesini alıcılar, konu, ileti gövdesi ve eklerle önceden doldurabilirsiniz. Taslağı doldurmak için, veriler herhangi bir kaynaktan gelebilir. Ancak genellikle eklentinin kendisine sağlanan bilgilerden, açık iletideki bilgilerden veya üçüncü taraf bir hizmetten toplanan bilgilerden türetilir. Geri çağırma işlevine iletilen etkinlik nesnesi, açık mesaj kimliğini ve taslağı önceden doldurmak için kullanabileceğiniz diğer eklenti bilgilerini içerir.
Taslağı yeni bir mesaj veya mevcut bir mesajın yanıtı olarak oluşturabilirsiniz. Bu, setComposeAction()
öğesine verilen ComposeEmailType
sıralaması tarafından kontrol edilir.
Yanıt taslaklarını tek yanıt veya "tümünü yanıtla" iletileri olarak oluşturabilirsiniz.
Bağımsız taslaklar
Bağımsız bir taslak, yeni bir ileti dizisi başlatır ve mevcut herhangi bir iletinin yanıtı değildir. Aşağıdaki Gmail hizmeti işlevlerinden biriyle bağımsız bir taslak oluşturabilirsiniz:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
Yanıt taslakları
Yanıt taslağı, mevcut bir ileti dizisinin parçasıdır. Yanıt taslakları, yalnızca bir iletiyi gönderen kişiye gönderilen tek yanıtlar veya söz konusu iletiyi alan herkese gönderilen "tümünü yanıtla" taslaklarıdır. Şu Gmail hizmeti işlevlerinden birini kullanarak bir yanıt taslağı oluşturabilirsiniz:
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)
Örnek
Aşağıdaki kod snippet'i, bir düğmeye yanıt taslağı oluşturan bir işlemin nasıl atanacağını gösterir.
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();
}