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
enum से कंट्रोल किया जाता है.
जवाब के ड्राफ़्ट, 'सभी को जवाब दें' मैसेज या एक जवाब के तौर पर बनाए जा सकते हैं.
स्टैंडअलोन ड्राफ़्ट
स्टैंडअलोन ड्राफ़्ट से नई थ्रेड शुरू होती है. यह किसी मौजूदा मैसेज का जवाब नहीं होता. इनमें से किसी एक 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();
}