संदेश UI को विस्तृत करना

Gmail के साथ काम करने वाले Google Workspace ऐड-ऑन, मैसेज पढ़ते समय यूज़र इंटरफ़ेस उपलब्ध करा सकते हैं. इससे, Google Workspace ऐड-ऑन ऐसे टास्क अपने-आप कर सकता है जो मैसेज के कॉन्टेंट का जवाब देते हैं. जैसे, मैसेज से जुड़ी अन्य जानकारी दिखाना, वापस पाना या भेजना.

ऐड-ऑन मैसेज के यूज़र इंटरफ़ेस (यूआई) को ऐक्सेस करना

किसी ऐड-ऑन के मैसेज के यूज़र इंटरफ़ेस (यूआई) को देखने के दो तरीके हैं. पहला तरीका यह है कि जब ऐड-ऑन पहले से खुला हो, तब किसी मैसेज को खोलें. उदाहरण के लिए, Gmail के इनबॉक्स में ऐड-ऑन का होम पेज देखते समय. दूसरा तरीका है, मैसेज देखते समय ऐड-ऑन चालू करना.

दोनों ही मामलों में, ऐड-ऑन ऐड-ऑन मेनिफ़ेस्ट में बताए गए संदर्भ के हिसाब से ट्रिगर फ़ंक्शन को लागू करता है. ट्रिगर तब भी काम करता है, जब ऐड-ऑन चालू होने के दौरान उपयोगकर्ता किसी दूसरे मैसेज पर स्विच करता है. संदर्भपरक ट्रिगर फ़ंक्शन उस मैसेज के लिए मैसेज यूज़र इंटरफ़ेस (यूआई) बनाता है, जिसे Gmail फिर उपयोगकर्ता को दिखाता है.

मैसेज ऐड-ऑन बनाना

नीचे दिए गए सामान्य चरणों को अपनाकर, ऐड-ऑन में मैसेज की सुविधा जोड़ी जा सकती है:

  1. ऐड-ऑन स्क्रिप्ट प्रोजेक्ट में मेनिफ़ेस्ट में सही फ़ील्ड जोड़ें. इसमें मैसेज की सुविधाओं के लिए ज़रूरी स्कोप भी शामिल करें. मेनिफ़ेस्ट में unconditional मान {} के साथ, एक शर्त ट्रिगर फ़ील्ड जोड़ना न भूलें.
  2. जब लोग किसी मैसेज में ऐड-ऑन को चुनते हैं, तब एक संदर्भ के हिसाब से ट्रिगर करने वाला फ़ंक्शन लागू करें जो मैसेज यूज़र इंटरफ़ेस (यूआई) बनाता हो.
  3. उपयोगकर्ता के यूज़र इंटरफ़ेस (यूआई) इंटरैक्शन के जवाब देने के लिए ज़रूरी संबंधित फ़ंक्शन लागू करें.

काम के ट्रिगर

मैसेज पढ़ने में उपयोगकर्ताओं की मदद करने के लिए, Google Workspace ऐड-ऑन अपने मेनिफ़ेस्ट में एक संदर्भ के हिसाब से ट्रिगर तय कर सकते हैं. जब उपयोगकर्ता कोई Gmail मैसेज (ऐड-ऑन ओपन के साथ) खोलता है, जो ट्रिगर की शर्तों* को पूरा करता है, तो ट्रिगर फ़ायर हो जाता है. सक्रिय किया गया ट्रिगर एक संदर्भ के हिसाब से ट्रिगर फ़ंक्शन चलाता है, जो ऐड-ऑन यूज़र इंटरफ़ेस बनाता है और उसे Gmail पर दिखाता है. ऐसा होने पर, उपयोगकर्ता उस डिवाइस से इंटरैक्ट करना शुरू कर सकता है.

कॉन्टेक्स्चुअल ट्रिगर को आपके ऐड-ऑन के प्रोजेक्ट में मेनिफ़ेस्ट में शामिल किया जाता है. ट्रिगर की परिभाषा से Gmail को यह पता चलता है कि किस ट्रिगर को किस स्थिति के तहत ट्रिगर करना है. उदाहरण के लिए, यह मेनिफ़ेस्ट स्निपेट बिना शर्त वाला ट्रिगर सेट करता है जो किसी मैसेज को खोले जाने पर ट्रिगर फ़ंक्शन onGmailMessageOpen() को कॉल करता है:

{
  ...
  "addOns": {

    "common": {
      ...
    },
    "gmail": {
      "contextualTriggers": [
        {
          "unconditional": {},
          "onTriggerFunction": "onGmailMessageOpen"
        }
      ],
      ...
    },
    ...
  }
  ...
}

कॉन्टेक्स्चुअल ट्रिगर फ़ंक्शन

हर प्रासंगिक ट्रिगर में एक उससे जुड़ा ट्रिगर फ़ंक्शन होना चाहिए, जो आपके ऐड-ऑन का यूज़र इंटरफ़ेस बनाता हो. इस फ़ंक्शन को अपने मेनिफ़ेस्ट के onTriggerFunction फ़ील्ड में डालें. इस फ़ंक्शन को लागू करके, ऐक्शन इवेंट ऑब्जेक्ट आर्ग्युमेंट को स्वीकार किया जाता है. साथ ही, कोई एक Card ऑब्जेक्ट या Card ऑब्जेक्ट का ऐरे दिखाया जाता है.

जब किसी Gmail मैसेज के लिए कॉन्टेक्स्ट के हिसाब से ट्रिगर फ़ायर होता है, तो यह इस फ़ंक्शन को कॉल करता है और इसे ऐक्शन इवेंट ऑब्जेक्ट के तौर पर पास करता है. अक्सर ट्रिगर फ़ंक्शन, Apps Script की 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.newKeyValue()
                .setTopLabel('Subject')
                .setContent(subject))
            .addWidget(CardService.newKeyValue()
                .setTopLabel('From')
                .setContent(sender)))
        .build();   // Don't forget to build the Card!
    return [exampleCard];
  }