Google Workspace के ऐड-ऑन में, ऐसे विजेट बनाए जा सकते हैं जिनमें लिंक की गई कार्रवाइयां हों. किसी कार्रवाई का इस्तेमाल करके, नए ईमेल ड्राफ़्ट बनाए जा सकते हैं. इसके लिए, ऐड-ऑन के यूज़र इंटरफ़ेस (यूआई) में डाली गई जानकारी या किसी खुले मैसेज की जानकारी का इस्तेमाल किया जा सकता है. उदाहरण के लिए, आपके पास अपने ऐड-ऑन के मैसेज यूज़र इंटरफ़ेस (यूआई) में एक बटन हो सकता है. यह बटन, फ़िलहाल खुले हुए मैसेज का जवाब देता है. इसमें, ऐड-ऑन की जानकारी पहले से भरी होती है.
जब मैसेज बनाने वाली कोई कार्रवाई ट्रिगर होती है, तो Gmail ड्राफ़्ट बनाने और उसे दिखाने के लिए, कॉलबैक फ़ंक्शन को लागू करता है. इसके बाद, Gmail उस ड्राफ़्ट को अपने यूज़र इंटरफ़ेस (यूआई) में, ईमेल लिखने के लिए बनी स्टैंडर्ड विंडो में दिखाता है. उपयोगकर्ता उसमें ज़रूरत के मुताबिक बदलाव करके, ईमेल भेज सकता है.
मैसेज का ड्राफ़्ट बनाने के लिए कार्रवाई कॉन्फ़िगर करना
चुने जाने पर ड्राफ़्ट बनाने की कार्रवाई शुरू करने के लिए, विजेट को कॉन्फ़िगर करने के लिए, आपको यह तरीका अपनाना होगा:
पक्का करें कि आपके मेनिफ़ेस्ट में,
action.compose
स्कोप शामिल हो:https://www.googleapis.com/auth/gmail.addons.current.action.compose
इसके बजाय, ज़्यादा अनुमति वाले स्कोप का इस्तेमाल किया जा सकता है. हालांकि, ऐसा सिर्फ़ तब करें, जब वह स्कोप ज़रूरी हो.
Action
ऑब्जेक्ट बनाएं और उसे अपने तय किए गए कॉलबैक फ़ंक्शन से जोड़ें.विजेट के
setComposeAction()
विजेट हैंडलर फ़ंक्शन को कॉल करें. इसके लिए,Action
ऑब्जेक्ट दें औरComposeEmailType
की जानकारी दें.ड्राफ़्ट बनाने की कार्रवाई को लागू करने वाला कॉलबैक फ़ंक्शन लागू करें. इस फ़ंक्शन को आर्ग्युमेंट के तौर पर इवेंट ऑब्जेक्ट दिया जाता है. कॉलबैक फ़ंक्शन को ये काम करने होंगे:
GmailDraft
ऑब्जेक्ट बनाएं.ComposeActionResponseBuilder
क्लास औरGmailDraft
ऑब्जेक्ट का इस्तेमाल करके,ComposeActionResponse
ऑब्जेक्ट बनाएं.- बनाए गए
ComposeActionResponse
को दिखाएं.
कॉलबैक फ़ंक्शन में बनाए गए GmailDraft
को, पाने वालों, विषय, मैसेज के मुख्य हिस्से, और अटैचमेंट के साथ पहले से भरा जा सकता है. ड्राफ़्ट भरने के लिए, डेटा किसी भी सोर्स से मिल सकता है. हालांकि, आम तौर पर यह डेटा, ऐड-ऑन को दी गई जानकारी, ओपन मैसेज में मौजूद जानकारी या तीसरे पक्ष की सेवा से इकट्ठा की गई जानकारी से मिलता है. कॉलबैक फ़ंक्शन में भेजे गए इवेंट ऑब्जेक्ट में, खुला मैसेज आईडी और ऐड-ऑन की अन्य जानकारी होती है. इसका इस्तेमाल, ड्राफ़्ट को पहले से भरने के लिए किया जा सकता है.
ड्राफ़्ट को स्टैंडअलोन मैसेज के तौर पर या किसी मौजूदा मैसेज का जवाब के तौर पर बनाया जा सकता है. इसे setComposeAction()
के लिए दिए गए ComposeEmailType
एनम से कंट्रोल किया जाता है.
जवाब के ड्राफ़्ट, एक व्यक्ति को जवाब देने या 'सभी को जवाब दें' मैसेज के तौर पर बनाए जा सकते हैं.
स्टैंडअलोन ड्राफ़्ट
स्टैंडअलोन ड्राफ़्ट से नई थ्रेड शुरू होती है. यह किसी मौजूदा मैसेज का जवाब नहीं होता. Gmail सेवा के इनमें से किसी एक फ़ंक्शन का इस्तेमाल करके, स्टैंडअलोन ड्राफ़्ट बनाया जा सकता है:
GmailApp.createDraft(recipient, subject, body)
GmailApp.createDraft(recipient, subject, body, options)
जवाब के ड्राफ़्ट
जवाब का ड्राफ़्ट, किसी मौजूदा मैसेज थ्रेड का हिस्सा होता है. जवाब के ड्राफ़्ट, एक व्यक्ति को भेजे जाने वाले जवाब होते हैं. ये जवाब सिर्फ़ मैसेज भेजने वाले व्यक्ति को भेजे जाते हैं. इसके अलावा, "सभी को जवाब दें" ड्राफ़्ट, मैसेज पाने वाले सभी लोगों को भेजे जाते हैं. 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)
उदाहरण
यहां दिए गए कोड स्निपेट में, किसी बटन पर जवाब का ड्राफ़्ट बनाने वाली कार्रवाई असाइन करने का तरीका बताया गया है.
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();
}