Gmail की सुविधाओं को बढ़ाने वाले Google Workspace ऐड-ऑन, उपयोगकर्ता को मैसेज पढ़ते समय यूज़र इंटरफ़ेस उपलब्ध करा सकते हैं. इससे ऐड-ऑन, मैसेज के कॉन्टेंट के हिसाब से टास्क अपने-आप पूरे कर सकते हैं. जैसे, मैसेज से जुड़ी अतिरिक्त जानकारी दिखाना, उसे वापस पाना या भेजना.
Google Workspace ऐड-ऑन के मैसेज यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस करना
ऐड-ऑन के मैसेज यूज़र इंटरफ़ेस (यूआई) को देखने के दो तरीके हैं. पहला तरीका यह है कि ऐड-ऑन पहले से खुला हो और फिर कोई मैसेज खोला जाए. उदाहरण के लिए, जब Gmail इनबॉक्स विंडो में ऐड-ऑन का होम पेज देखा जा रहा हो. दूसरा तरीका यह है कि मैसेज देखते समय ऐड-ऑन शुरू करें.
इन दोनों ही मामलों में, ऐड-ऑन कॉन्टेक्स्ट के हिसाब से ट्रिगर होने वाले फ़ंक्शन को लागू करता है. यह फ़ंक्शन, ऐड-ऑन के मेनिफ़ेस्ट में तय किया जाता है. अगर उपयोगकर्ता ऐड-ऑन खुला होने के दौरान किसी दूसरे मैसेज पर स्विच करता है, तो भी ट्रिगर चालू हो जाता है. कॉन्टेक्स्ट के हिसाब से ट्रिगर करने वाला फ़ंक्शन, उस मैसेज के लिए मैसेज यूज़र इंटरफ़ेस (यूआई) बनाता है. इसके बाद, Gmail उसे उपयोगकर्ता को दिखाता है.
मैसेज ऐड-ऑन बनाना
किसी ऐड-ऑन में मैसेज भेजने की सुविधा जोड़ने के लिए, यह सामान्य तरीका अपनाएं:
- ऐड-ऑन स्क्रिप्ट प्रोजेक्ट के मेनिफ़ेस्ट में सही फ़ील्ड जोड़ें. इनमें मैसेज फ़ंक्शन के लिए ज़रूरी स्कोप भी शामिल हैं. मेनिफ़ेस्ट में सशर्त ट्रिगर फ़ील्ड जोड़ना न भूलें. इसकी वैल्यू
unconditional{}होनी चाहिए. - कॉन्टेक्स्ट के हिसाब से ट्रिगर करने वाले फ़ंक्शन को लागू करें. यह फ़ंक्शन, उपयोगकर्ता के मैसेज में ऐड-ऑन चुनने पर मैसेज यूज़र इंटरफ़ेस (यूआई) बनाता है.
- उपयोगकर्ता के यूज़र इंटरफ़ेस (यूआई) इंटरैक्शन का जवाब देने के लिए, उससे जुड़े ज़रूरी फ़ंक्शन लागू करें.
कॉन्टेक्स्ट के हिसाब से ट्रिगर होने की सुविधा
लोगों को मैसेज पढ़ने में मदद करने के लिए, ऐड-ऑन अपनी मेनिफ़ेस्ट फ़ाइलों में संदर्भ के हिसाब से ट्रिगर होने वाली सुविधा तय कर सकते हैं. जब उपयोगकर्ता, Gmail में ऐसा मैसेज खोलता है जिसमें ऐड-ऑन खुला हो और वह मैसेज ट्रिगर करने की ज़रूरी शर्तें* पूरी करता हो, तब ट्रिगर चालू होता है. ट्रिगर होने पर, कॉन्टेक्स्ट के हिसाब से ट्रिगर होने वाला फ़ंक्शन काम करता है. यह फ़ंक्शन, ऐड-ऑन का यूज़र इंटरफ़ेस बनाता है और उसे Gmail को दिखाता है. इसके बाद, उपयोगकर्ता इससे इंटरैक्ट कर सकता है.
कॉन्टेक्स्ट के हिसाब से ट्रिगर होने की सुविधा, आपके ऐड-ऑन के प्रोजेक्ट के मेनिफ़ेस्ट में तय की जाती है.
ट्रिगर की परिभाषा से Gmail को यह पता चलता है कि किन शर्तों के तहत कौनसा ट्रिगर फ़ंक्शन फ़ायर करना है. उदाहरण के लिए, मेनिफ़ेस्ट के इस स्निपेट में, बिना शर्त वाला ट्रिगर सेट किया गया है. यह ट्रिगर, मैसेज खोले जाने पर ट्रिगर फ़ंक्शन onGmailMessageOpen() को कॉल करता है:
{
...
"addOns": {
"common": {
...
},
"gmail": {
"contextualTriggers": [
{
"unconditional": {},
"onTriggerFunction": "onGmailMessageOpen"
}
],
...
},
...
}
...
}कॉन्टेक्स्ट के हिसाब से ट्रिगर होने वाला फ़ंक्शन
हर कॉन्टेक्स्ट के हिसाब से ट्रिगर होने वाले फ़ंक्शन के लिए, एक ट्रिगर फ़ंक्शन होना चाहिए. यह फ़ंक्शन, आपके ऐड-ऑन का उपयोगकर्ता इंटरफ़ेस बनाता है. इस फ़ंक्शन को मेनिफ़ेस्ट के onTriggerFunction फ़ील्ड में तय किया जाता है. इस फ़ंक्शन को लागू करने के लिए, ऐक्शन इवेंट ऑब्जेक्ट आर्ग्युमेंट स्वीकार करें. साथ ही, एक Card ऑब्जेक्ट या Card ऑब्जेक्ट का अरे दिखाएं.
जब किसी Gmail मैसेज के लिए कॉन्टेक्स्ट के हिसाब से ट्रिगर चालू होता है, तो यह फ़ंक्शन कॉल करता है और इसे ऐक्शन इवेंट ऑब्जेक्ट पास करता है.
ट्रिगर फ़ंक्शन, अक्सर इस इवेंट ऑब्जेक्ट से मिले मैसेज आईडी का इस्तेमाल करते हैं. इससे Apps Script की Gmail सेवा का इस्तेमाल करके, मैसेज का टेक्स्ट और अन्य जानकारी मिलती है.
ज़्यादातर मामलों में, Gmail सेवा के अन्य फ़ंक्शन इस्तेमाल करने से पहले, आपको इवेंट ऑब्जेक्ट से मिले ऐक्सेस टोकन और GmailApp.setCurrentMessageAccessToken(accessToken) फ़ंक्शन का इस्तेमाल करके, Gmail स्कोप चालू करने होंगे. उदाहरण के लिए, आपका ट्रिगर फ़ंक्शन इन फ़ंक्शन का इस्तेमाल करके, मैसेज का कॉन्टेंट निकाल सकता है:
// Activate temporary Gmail scopes, in this case to allow
// the add-on to read message metadata and content.
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
// Read message metadata and content. This requires the Gmail scope
// https://www.googleapis.com/auth/gmail.addons.current.message.readonly.
var messageId = e.gmail.messageId;
var message = GmailApp.getMessageById(messageId);
var subject = message.getSubject();
var sender = message.getFrom();
var body = message.getPlainBody();
var messageDate = message.getDate();
// Setting the access token with a gmail.addons.current.message.readonly
// scope also allows read access to the other messages in the thread.
var thread = message.getThread();
var threadMessages = thread.getMessages();
// Using this link can avoid the need to copy message or thread content
var threadLink = thread.getPermalink();
इसके बाद, ट्रिगर फ़ंक्शन इस डेटा पर कार्रवाई कर सकता है. साथ ही, इंटरफ़ेस के लिए ज़रूरी जानकारी निकाल सकता है. उदाहरण के लिए, बिक्री की संख्या की खास जानकारी देने वाला ऐड-ऑन, मैसेज के मुख्य हिस्से से बिक्री के आंकड़े इकट्ठा कर सकता है. साथ ही, उन्हें कार्ड में दिखाने के लिए व्यवस्थित कर सकता है.
ट्रिगर फ़ंक्शन को, Card ऑब्जेक्ट की एक बनाई गई और दिखाई गई शृंखला बनानी और दिखानी होगी. उदाहरण के लिए, यहां एक ऐसा ऐड-ऑन बनाया गया है जिसमें सिर्फ़ एक कार्ड है. इस कार्ड में, मैसेज का विषय और भेजने वाले का नाम दिखता है:
function onGmailMessageOpen(e) {
// Activate temporary Gmail scopes, in this case to allow
// message metadata to be read.
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.gmail.messageId;
var message = GmailApp.getMessageById(messageId);
var subject = message.getSubject();
var sender = message.getFrom();
// Create a card with a single card section and two widgets.
// Be sure to execute build() to finalize the card construction.
var exampleCard = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('Example card'))
.addSection(CardService.newCardSection()
.addWidget(CardService.newDecoratedText()
.setTopLabel('Subject')
.setText(subject))
.addWidget(CardService.newDecoratedText()
.setTopLabel('From')
.setText(sender)))
.build(); // Don't forget to build the Card!
return [exampleCard];
}