उपयोगकर्ता के इंटरैक्शन की जानकारी पाना और उनका जवाब देना

इस पेज पर बताया गया है कि Google Chat में, आपका Google Chat ऐप्लिकेशन उपयोगकर्ता के इंटरैक्शन को कैसे पा सकता है और उनका जवाब कैसे दे सकता है.

Chat ऐप्लिकेशन के लिए इंटरैक्टिव इंटरफ़ेस बनाने के लिए, इन कॉम्पोनेंट का इस्तेमाल किया जाता है:

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

चैट ऐप्लिकेशन, इन तरीकों से इंटरफ़ेस बना सकते हैं और दिखा सकते हैं:

  • मैसेज, जिनमें टेक्स्ट, स्टैटिक या इंटरैक्टिव कार्ड, और ऐक्सेसरी बटन शामिल हो सकते हैं.
  • होम पेज (ऐप्लिकेशन होम), जो Chat ऐप्लिकेशन के साथ 1:1 सीधी बातचीत के होम टैब में दिखते हैं.
  • डायलॉग, जो नई विंडो में खुलने वाले कार्ड होते हैं. आम तौर पर, ये उपयोगकर्ताओं को जानकारी सबमिट करने के लिए कहते हैं.
  • लिंक की झलक, जो किसी बाहरी सेवा के बारे में जानकारी की झलक दिखाने वाले कार्ड होते हैं.

ज़रूरी शर्तें

उपयोगकर्ता के इंटरैक्शन कैसे काम करते हैं

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

यहां दिए गए डायग्राम में दिखाया गया है कि Google Chat ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन को कैसे प्रोसेस करते हैं और उनका जवाब कैसे देते हैं:

Google Chat ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन को कैसे प्रोसेस करते हैं.

ट्रिगर

ट्रिगर, वे खास तरीके होते हैं जिनका इस्तेमाल करके, उपयोगकर्ता Chat के यूज़र इंटरफ़ेस (यूआई) से किसी चैट ऐप्लिकेशन को चालू करते हैं. जैसे, @उल्लेख या ऐप्लिकेशन के कमांड का इस्तेमाल करना.

इस टेबल में, Chat ट्रिगर, उनकी जानकारी, और Chat ऐप्लिकेशन के जवाब देने के सामान्य तरीके के बारे में बताया गया है:

ट्रिगर ब्यौरा सामान्य जवाब
स्पेस में जोड़ा गया

कोई उपयोगकर्ता, Chat ऐप्लिकेशन को किसी स्पेस में जोड़ता है या Google Workspace एडमिन, अपने संगठन के उपयोगकर्ताओं के लिए, Chat ऐप्लिकेशन को डायरेक्ट मैसेज वाले स्पेस में इंस्टॉल करता है. एडमिन की ओर से इंस्टॉल किए गए Chat ऐप्लिकेशन के बारे में जानने के लिए, Google Workspace एडमिन के सहायता दस्तावेज़ में अपने डोमेन में Marketplace ऐप्लिकेशन इंस्टॉल करना लेख पढ़ें.

चैट ऐप्लिकेशन, शामिल होने का मैसेज भेजता है. इसमें बताया जाता है कि चैट ऐप्लिकेशन क्या काम करता है और स्पेस में मौजूद लोग इससे कैसे इंटरैक्ट कर सकते हैं.
मैसेज

कोई उपयोगकर्ता, Chat ऐप्लिकेशन के साथ किसी मैसेज में इनमें से किसी एक तरीके से इंटरैक्ट करता है:

  • Chat ऐप्लिकेशन की मदद से, डायरेक्ट मैसेज (डीएम) स्पेस में मैसेज भेजता है.
  • किसी भी तरह के स्पेस में, चैट ऐप्लिकेशन को @टैग किया गया हो.
  • ऐसा मैसेज भेजता है जिसमें यूआरएल पैटर्न से मैच करने वाला लिंक शामिल हो. यह लिंक, लिंक की झलक के लिए होता है.
  • selectionInput विजेट के मल्टी-सिलेक्ट मेन्यू में टेक्स्ट टाइप करता है.
चैट ऐप्लिकेशन, मैसेज के कॉन्टेंट के आधार पर जवाब देता है. उदाहरण के लिए, कोई चैट ऐप्लिकेशन मैसेज के साथ जवाब देता है, लिंक की झलक दिखाने वाला कार्ड अटैच करता है या कई आइटम चुनने की सुविधा देने वाले मेन्यू में आइटम सुझाता है.
स्पेस से हटाया गया

कोई उपयोगकर्ता, चैट ऐप्लिकेशन को किसी स्पेस से हटा देता है या Google Workspace एडमिन, अपने संगठन के किसी उपयोगकर्ता के लिए चैट ऐप्लिकेशन को अनइंस्टॉल कर देता है.

उपयोगकर्ता, चैट के लिए इस्तेमाल किए जाने वाले उन ऐप्लिकेशन को नहीं हटा सकते जिन्हें उनके एडमिन ने इंस्टॉल किया है. अगर किसी उपयोगकर्ता ने पहले से ही Chat ऐप्लिकेशन इंस्टॉल किया हुआ है, तो वह इंस्टॉल ही रहेगा. भले ही, Google Workspace एडमिन उसे अनइंस्टॉल करने की कोशिश करे.

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

कोई उपयोगकर्ता, Chat ऐप्लिकेशन के कमांड को ट्रिगर करता है. जैसे, स्लैश कमांड, क्विक कमांड या मैसेज पर की जाने वाली कार्रवाई.

Chat ऐप्लिकेशन, कमांड का जवाब देता है. उदाहरण के लिए, यह किसी मैसेज का जवाब देता है या कोई डायलॉग खोलता है.
ऐप्लिकेशन का होम पेज

कोई उपयोगकर्ता, Chat ऐप्लिकेशन के साथ 1:1 सीधी बातचीत (डीएम) स्पेस में होम टैब खोलता है या होम पेज कार्ड पर मौजूद किसी विजेट के साथ इंटरैक्ट करता है.

Chat ऐप्लिकेशन, RenderActions ऑब्जेक्ट दिखाता है. यह ऑब्जेक्ट, होम पेज कार्ड (pushCard) को पुश करता है या दिखाए गए होम पेज कार्ड (updateCard) को अपडेट करता है.

इन ट्रिगर के लिए एंडपॉइंट या कॉलबैक फ़ंक्शन कॉन्फ़िगर करने के लिए, Google Cloud Console में Chat API के कॉन्फ़िगरेशन पेज पर जाएं. सिलसिलेवार निर्देश पाने के लिए, Google Chat API को कॉन्फ़िगर करना लेख पढ़ें.

स्टार्टर प्रॉम्प्ट कॉन्फ़िगर करना

स्टार्टर प्रॉम्प्ट की मदद से, उपयोगकर्ताओं को आपके Chat ऐप्लिकेशन की सुविधाओं के बारे में पता चलता है. ऐसा तब होता है, जब वे आपके ऐप्लिकेशन के साथ सीधी बातचीत खोलते हैं. आपके पास ज़्यादा से ज़्यादा तीन स्टार्टर प्रॉम्प्ट कॉन्फ़िगर करने का विकल्प होता है.

स्टार्टर प्रॉम्प्ट जोड़ने और उन्हें कॉन्फ़िगर करने के लिए:

  1. Google Cloud console में, Chat API के कॉन्फ़िगरेशन पेज पर जाएं:

    Chat API के कॉन्फ़िगरेशन पेज पर जाना

  2. इंटरैक्टिव सुविधाएं में जाकर, स्टार्टर प्रॉम्प्ट ढूंढें और प्रॉम्प्ट जोड़ें पर क्लिक करें.

  3. रैंक (1-3) फ़ील्ड में, 1 से 3 तक की कोई संख्या डालें, ताकि यह तय किया जा सके कि प्रॉडक्ट किस क्रम में दिखें.

  4. टाइप चुनें में जाकर, चुनें कि प्रॉम्प्ट कैसे काम करे:

    • टेक्स्ट प्रॉम्प्ट: जब उपयोगकर्ता प्रॉम्प्ट चिप पर क्लिक करता है, तो लिखने के लिए बार में पहले से तय टेक्स्ट भर जाता है.
    • कमांड प्रॉम्प्ट: क्लिक करने पर, रजिस्टर किया गया स्लैश कमांड या क्विक कमांड चलाता है. ऐसे कमांड नहीं चुने जा सकते जिनके लिए अतिरिक्त आर्ग्युमेंट की ज़रूरत होती है.
  5. चुने गए टाइप के आधार पर प्रॉम्प्ट को कॉन्फ़िगर करें:

    • अगर आपने टेक्स्ट प्रॉम्प्ट चुना है:

      1. टाइटल में, चिप पर दिखने वाले प्रॉम्प्ट का टाइटल डालें. इसमें ज़्यादा से ज़्यादा 30 वर्ण हो सकते हैं.
      2. प्रॉम्प्ट टेक्स्ट में, लिखने के लिए बार में मौजूद टेक्स्ट डालें. इसमें ज़्यादा से ज़्यादा 60 वर्ण होने चाहिए.
      3. ज़रूरी नहीं: अन्य भाषाओं का इस्तेमाल करने वाले उपयोगकर्ताओं के लिए, स्थानीय भाषा में टाइटल और टेक्स्ट जोड़ें:
      4. स्थानीय भाषा में प्रॉम्प्ट में जाकर, कोई भाषा जोड़ें पर क्लिक करें.
      5. भाषा में जाकर, ड्रॉप-डाउन से कोई ऐसी भाषा चुनें जो इस्तेमाल की जा सकती है.
      6. स्थानीय भाषा में टाइटल में, स्थानीय भाषा में टाइटल डालें. इसमें ज़्यादा से ज़्यादा 30 वर्ण हो सकते हैं.
      7. Localized Prompt text में, स्थानीय भाषा में प्रॉम्प्ट टेक्स्ट डालें. इसमें ज़्यादा से ज़्यादा 60 वर्ण होने चाहिए.
      8. ज़रूरत के हिसाब से ज़्यादा भाषाएं जोड़ने के लिए, यह तरीका दोहराएं.
    • अगर आपने कमांड प्रॉम्प्ट चुना है:

      1. स्लैश कमांड / क्विक कमांड में जाकर, ड्रॉप-डाउन से कमांड चुनें.
  6. हो गया पर क्लिक करें. इसके बाद, पेज पर सबसे नीचे मौजूद सेव करें पर क्लिक करें.

अपनी सेवा के लिए, एचटीटीपी कॉल को फिर से करने की प्रोसेस को मैनेज करना

अगर आपकी सेवा को भेजा गया एचटीटीपीएस अनुरोध पूरा नहीं हो पाता है, तो Google Chat कुछ मिनटों में कुछ बार फिर से अनुरोध भेजने की कोशिश कर सकता है. हालांकि, इसकी कोई गारंटी नहीं है. अनुरोध पूरा न होने की वजहों में, टाइम आउट होना, कुछ समय के लिए नेटवर्क काम न करना या 2xx के अलावा कोई अन्य एचटीटीपीएस स्टेटस कोड मिलना शामिल है. इस वजह से, कुछ मामलों में Chat ऐप्लिकेशन को एक ही इवेंट कुछ बार मिल सकता है. अगर अनुरोध पूरा हो जाता है, लेकिन अमान्य रिस्पॉन्स पेलोड मिलता है, तो Google Chat अनुरोध को फिर से नहीं भेजता.

इवेंट ऑब्जेक्ट

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

साल 2025 में, Google Chat ऐप्लिकेशन को ऐड-ऑन इवेंट के साथ काम करने के लिए अपडेट किया गया. जुलाई 2025 से, यह नए Chat ऐप्लिकेशन के लिए डिफ़ॉल्ट तौर पर सेट है. Chat के पूरे दस्तावेज़ में, ऐड-ऑन इवेंट, स्टैंडर्ड इवेंट टाइप होते हैं. इन्हें गाइड और कोड सैंपल में दिखाया जाता है. Chat इवेंट के दस्तावेज़ (ऐसे Chat ऐप्लिकेशन के लिए जो Google Workspace ऐड-ऑन नहीं हैं) को छोटे किए गए सेक्शन में बांटा गया है. उदाहरण के लिए, ऐसे Chat ऐप्लिकेशन जो ऐड-ऑन नहीं हैं: इंटरैक्शन इवेंट पाना और उनका जवाब देना.

इवेंट और रिस्पॉन्स के टाइप तय करना

जब आपके चैट ऐप्लिकेशन को कोई इवेंट ऑब्जेक्ट मिलता है, तो पेलोड का स्ट्रक्चर और जवाब देने का तरीका इस बात पर निर्भर करता है कि आपका चैट ऐप्लिकेशन, Google Workspace ऐड-ऑन के तौर पर कॉन्फ़िगर किया गया है या नहीं.

आपका ऐप्लिकेशन किस तरह के इवेंट ऑब्जेक्ट पाता है और उसे कैसे जवाब देना चाहिए, इसकी पुष्टि करने के लिए, यहां दी गई टेबल का इस्तेमाल करके अपने ऐप्लिकेशन का कॉन्फ़िगरेशन देखें:

ऐप्लिकेशन किस तरह का है ऐड-ऑन इवेंट की जानकारी मिलती है
(जुलाई 2025 के बाद बनाए गए नए ऐप्लिकेशन के लिए डिफ़ॉल्ट रूप से सेट होता है)
Chat के इवेंट की जानकारी मिलती है
(जुलाई 2025 से पहले का डिफ़ॉल्ट विकल्प)
Apps Script ऐप्लिकेशन
मेनिफ़ेस्ट फ़ाइल (appsscript.json) देखें
chat ऑब्जेक्ट को addOns में कॉन्फ़िगर किया गया है:
{
  "addOns": {
    "chat": {}
  }
}
chat ऑब्जेक्ट को मेनिफ़ेस्ट के रूट पर कॉन्फ़िगर किया गया है:
{
  "chat": {}
}
अन्य ऐप्लिकेशन
Google Chat API कॉन्फ़िगरेशन पेज देखें
"इस Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन के तौर पर बनाएं" चेकबॉक्स चुना गया हो. "इस चैट ऐप्लिकेशन को Google Workspace ऐड-ऑन के तौर पर बनाएं" चेकबॉक्स को नहीं चुना गया है.
दस्तावेज़ कहां मिलेंगे सभी गाइड और कोड सैंपल में

इवेंट रेफ़रंस दस्तावेज़: ऐड-ऑन इवेंट ऑब्जेक्ट
छोटे किए गए सेक्शन (उदाहरण के लिए, Chat के ऐसे ऐप्लिकेशन जो ऐड-ऑन नहीं हैं: इंटरैक्शन इवेंट पाना और उनका जवाब देना)

इवेंट के रेफ़रंस दस्तावेज़: Chat API के इंटरैक्शन इवेंट
जवाब देने का तरीका कोई कार्रवाई दिखाएं, जैसे कि DataActions या RenderActions.
कार्रवाई करके जवाब देने का तरीका देखें
Message संसाधन दिखाता है.
मैसेज भेजकर जवाब देने का तरीका देखें

इवेंट ऑब्जेक्ट पेलोड

ऐड-ऑन के हर इवेंट ऑब्जेक्ट में, होस्ट और प्लैटफ़ॉर्म की जानकारी (hostApp: "CHAT", clientPlatform, userLocale, userTimezone, parameters, और formInputs) के साथ commonEventObject और Chat के हिसाब से कॉन्टेक्स्ट वाला chat ऑब्जेक्ट शामिल होता है:

  • ऐप्लिकेशन के होम पेज के ट्रिगर (जब कोई उपयोगकर्ता Chat ऐप्लिकेशन के साथ सीधी बातचीत में होम टैब खोलता है) के लिए, chat ऑब्जेक्ट में chat.user और chat.eventTime शामिल होते हैं. हालांकि, इसमें यूनियन payload फ़ील्ड नहीं होता. जब कोई उपयोगकर्ता होम पेज कार्ड में मौजूद किसी बटन पर क्लिक करता है, तो इवेंट ऑब्जेक्ट में commonEventObject.parameters के साथ chat.buttonClickedPayload शामिल होता है. साथ ही, अगर कार्ड में फ़ॉर्म इनपुट शामिल हैं, तो commonEventObject.formInputs भी शामिल होता है.
  • स्पेस और मैसेज इंटरैक्शन (स्पेस में जोड़ा गया, मैसेज, स्पेस से हटाया गया, ऐप्लिकेशन कमांड या बटन और विजेट इंटरैक्शन) के लिए, chat ऑब्जेक्ट में chat.user, chat.space, chat.eventTime, और उससे जुड़ा इंटरैक्शन पेलोड शामिल होता है:
    • messagePayload: जब कोई उपयोगकर्ता मैसेज भेजता है, तो इसमें space, message, और configCompleteRedirectUri शामिल होता है.
    • addedToSpacePayload: इसमें space, interactionAdd, और configCompleteRedirectUri शामिल होते हैं. ऐसा तब होता है, जब चैट ऐप्लिकेशन को किसी स्पेस में जोड़ा जाता है.
    • removedFromSpacePayload: इसमें space शामिल होता है. ऐसा तब होता है, जब चैट ऐप्लिकेशन को किसी स्पेस से हटाया जाता है.
    • buttonClickedPayload: जब कोई उपयोगकर्ता किसी कार्ड या डायलॉग बॉक्स पर मौजूद बटन पर क्लिक करता है, तो इसमें space, message, isDialogEvent, और dialogEventType शामिल होते हैं.
    • widgetUpdatedPayload: इसमें space शामिल होता है. ऐसा तब होता है, जब कोई उपयोगकर्ता किसी विजेट के साथ इंटरैक्ट करता है. जैसे, बाहरी डेटा सोर्स वाले, कई विकल्प चुनने की सुविधा देने वाले मेन्यू में टाइप करना.
    • appCommandPayload: जब कोई उपयोगकर्ता ऐप्लिकेशन के किसी निर्देश को ट्रिगर करता है, तो इसमें space, message, appCommandMetadata, isDialogEvent, dialogEventType, और configCompleteRedirectUri शामिल होते हैं.

Chat और Google Workspace के अन्य ऐप्लिकेशन में, ऐड-ऑन के इवेंट ऑब्जेक्ट के बारे में जानने के लिए, इवेंट ऑब्जेक्ट देखें.

जवाब देना

इस सेक्शन में बताया गया है कि Chat ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन का तुरंत जवाब देने के लिए, कार्रवाइयों का इस्तेमाल कैसे करते हैं.

किसी कार्रवाई के साथ जवाब देने के लिए, Chat ऐप्लिकेशन को 30 सेकंड के अंदर जवाब देना होगा. साथ ही, जवाब उस स्पेस पर लागू होना चाहिए जहां इंटरैक्शन हुआ था. इन सिंक्रोनस रिस्पॉन्स के लिए, पुष्टि की ज़रूरत नहीं होती. अगर आपके चैट ऐप्लिकेशन को 30 सेकंड से ज़्यादा समय चाहिए या उसे स्पेस के बाहर काम करना है, तो पुष्टि करने की सुविधा सेट अप करें. साथ ही, Google Chat API का इस्तेमाल करके, एसिंक्रोनस तरीके से जवाब दें.

उपयोगकर्ता के इंटरैक्शन का तुरंत जवाब देने के लिए, आपका Chat ऐप्लिकेशन, आने वाले इवेंट ऑब्जेक्ट को मैनेज करता है. साथ ही, इनमें से कोई एक JSON ऑब्जेक्ट दिखाता है:

यहां दी गई टेबल में बताया गया है कि Chat ऐप्लिकेशन, कार्रवाइयों के साथ कैसे जवाब दे सकते हैं. चैट ऐप्लिकेशन, JSON ऑब्जेक्ट को सीधे तौर पर दिखा सकते हैं या Apps Script के AddOnResponseService और CardService का इस्तेमाल करके जवाब बना सकते हैं.

चैट ऐप्लिकेशन का जवाब Required action to return (JSON) वापस करने के लिए ज़रूरी कार्रवाई (Apps Script)
मैसेज भेजना या मैसेज अपडेट करना. DataActions (createMessageAction या updateMessageAction) DataActionsResponse
Chat के उपयोगकर्ताओं की ओर से किसी स्पेस में भेजे गए मैसेज में मौजूद लिंक की झलक. DataActions (updateInlinePreviewAction) DataActionsResponse
डायरेक्ट मैसेज के होम टैब में, होम पेज रेंडर या अपडेट करना. RenderActions (pushCard या updateCard) ActionResponse
किसी डायलॉग को खोलना, अपडेट करना या बंद करना. RenderActions (pushCard, updateCard या endNavigation: "CLOSE_DIALOG") ActionResponse
किसी कार्ड या डायलॉग से जानकारी इकट्ठा करने के लिए, कई विकल्प वाले मेन्यू में उपयोगकर्ताओं के टाइप किए गए शब्दों के आधार पर, चुनने के लिए आइटम सुझाएं. RenderActions (modifyCard) ActionResponse
किसी बाहरी सेवा के लिए, कॉन्फ़िगरेशन या अनुमति का अनुरोध करना. AuthorizationError (basic_authorization_prompt) AuthorizationException

जवाब के तौर पर मैसेज भेजें

Chat ऐप्लिकेशन, इनमें से किसी भी ट्रिगर या इंटरैक्शन के लिए, मैसेज भेजकर जवाब दे सकते हैं:

  • मैसेज ट्रिगर, जैसे कि जब उपयोगकर्ता किसी Chat ऐप्लिकेशन को @टैग करते हैं या उसे डायरेक्ट मैसेज भेजते हैं.
  • स्पेस में जोड़ा गया ट्रिगर, जैसे कि जब उपयोगकर्ता Google Workspace Marketplace से Chat ऐप्लिकेशन इंस्टॉल करते हैं या उसे किसी स्पेस में जोड़ते हैं.
  • ऐप्लिकेशन कमांड ट्रिगर, जैसे कि जब उपयोगकर्ता स्लैश कमांड या क्विक कमांड का इस्तेमाल करते हैं.
  • मैसेज या डायलॉग में मौजूद कार्ड में बटन पर क्लिक करना. उदाहरण के लिए, जब उपयोगकर्ता जानकारी डालते हैं और सबमिट पर क्लिक करते हैं.

चैट ऐप्लिकेशन, किसी मैसेज में इनमें से कोई भी चीज़ शामिल कर सकते हैं:

  • ऐसा टेक्स्ट जिसमें हाइपरलिंक, @टैग, और इमोजी शामिल हों. मैसेज की फ़ॉर्मेटिंग करना देखें.
  • एक या उससे ज़्यादा कार्ड, जो किसी मैसेज में दिख सकते हैं या डायलॉग के तौर पर नई विंडो में खुल सकते हैं. Google Chat ऐप्लिकेशन के लिए कार्ड बनाना देखें.
  • एक या उससे ज़्यादा ऐक्सेसरी विजेट. ये ऐसे बटन होते हैं जो किसी मैसेज में टेक्स्ट या कार्ड के बाद दिखते हैं.

मैसेज से जवाब देने के लिए, CreateMessageAction ऑब्जेक्ट के साथ DataActions दिखाएं:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

MESSAGE को Chat API के Message संसाधन से बदलें.

यहां दिए गए उदाहरण में, चैट ऐप्लिकेशन को किसी स्पेस में जोड़े जाने पर, वह स्पेस में शामिल होने के लिए एक टेक्स्ट मैसेज बनाता है और भेजता है. इसके लिए, वह DataActions के साथ स्पेस में जोड़ा गया ट्रिगर का जवाब देता है:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The request object from Google Chat.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  const chatEvent = req.body.chat;
  // Send an onboarding message when added to a Chat space
  if (chatEvent.addedToSpacePayload) {
    res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
      text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
        'To learn what else I can do, type `/help`.'
    }}}}});
  }
};

Python

from flask import Flask, request, json
app = Flask(__name__)

@app.route('/', methods=['POST'])
def cymbal_app():
  """Sends an onboarding message when the Chat app is added to a space.

  Returns:
    Mapping[str, Any]: The response object from the Chat app.
  """
  chat_event = request.get_json()["chat"]
  if "addedToSpacePayload" in chat_event:
    return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
      "createMessageAction": { "message": {
        "text": 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
        'To learn what else I can do, type `/help`.'
      }}
    }}})

Java

@SpringBootApplication
@RestController
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }

  /*
   * Sends an onboarding message when the Chat app is added to a space.
   *
   * @return The response object from the Chat app.
   */
  @PostMapping("/")
  @ResponseBody
  public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
    JsonNode chatEvent = event.at("/chat");
    if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
      return new GenericJson() { {
        put("hostAppDataAction", new GenericJson() { {
          put("chatDataAction", new GenericJson() { {
            put("createMessageAction", new GenericJson() { {
              put("message", new Message().setText(
                "Hi, Cymbal at your service. I help you manage your calendar " +
                "from Google Chat. Take a look at your schedule today by typing " +
                "`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
                "To learn what else I can do, type `/help`."
              ));
            } });
          } });
        } });
      } };
    }
    return new GenericJson();
  }
}

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Google Chat.
 * @return {Object} Response from the Chat app.
 */
function onAddedToSpace(event) {
  return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
    text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
          'from Google Chat. Take a look at your schedule today by typing ' +
          '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
          'To learn what else I can do, type `/help`.'
  }}}}};
}

कोड सैंपल से यह टेक्स्ट मैसेज मिलता है:

शामिल होने के लिए मैसेज का उदाहरण.

किसी मैसेज को अपडेट करना

चैट ऐप्लिकेशन, अपने भेजे गए मैसेज भी अपडेट कर सकते हैं. उदाहरण के लिए, जब कोई उपयोगकर्ता किसी डायलॉग को सबमिट करता है या मैसेज में मौजूद किसी कार्ड पर मौजूद बटन पर क्लिक करता है, तो चैट ऐप्लिकेशन उस मैसेज को अपडेट कर सकता है.

किसी इंटरैक्शन के जवाब में Chat ऐप्लिकेशन के मैसेज को अपडेट करने के लिए, UpdateMessageAction के साथ DataActions को वापस करें:

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

MESSAGE को Chat API के Message संसाधन से बदलें.

Chat ऐप्लिकेशन, उपयोगकर्ता के भेजे गए मैसेज को अपडेट भी कर सकते हैं. इसके लिए, वे updateInlinePreviewAction का इस्तेमाल करके, लिंक की झलक दिखाने वाला कार्ड अटैच कर सकते हैं. ज़्यादा जानकारी के लिए, लिंक की झलक देखना लेख पढ़ें.

Google Chat API का इस्तेमाल करके, एसिंक्रोनस तरीके से जवाब देना

किसी इंटरैक्शन का जवाब देने या पहले से तैयार मैसेज भेजने के लिए, Chat ऐप्लिकेशन को Google Chat API को कॉल करना पड़ सकता है. ऐसा तब होता है, जब Chat ऐप्लिकेशन किसी कार्रवाई को सिंक्रोनस तरीके से पूरा नहीं कर पाते. उदाहरण के लिए, चैट ऐप्लिकेशन को इनमें से कोई भी काम करने के लिए, Google Chat API को कॉल करना होगा:

  • किसी इंटरैक्शन का जवाब 30 सेकंड के बाद देना. जैसे, लंबे समय से चल रहे किसी टास्क को पूरा करने के बाद.
  • शेड्यूल के मुताबिक मैसेज भेजें या बाहरी संसाधनों में हुए बदलावों के बारे में सूचनाएं भेजें.
  • उस स्पेस से बाहर टास्क करना जहां इंटरैक्शन हुआ था.
  • Chat में ऐसे टास्क पूरे करना जो सिंक्रोनस ऐक्शन के तौर पर उपलब्ध नहीं हैं. जैसे, स्पेस की सूची बनाना या किसी स्पेस में सदस्यों को जोड़ना.
  • Chat के किसी उपयोगकर्ता की ओर से टास्क पूरे करना (इसके लिए, उपयोगकर्ता की पुष्टि करना ज़रूरी है).

अगर किसी इंटरैक्शन का जवाब 30 सेकंड के बाद दिया जाता है, तो उपयोगकर्ता को गड़बड़ी का मैसेज दिख सकता है. इसमें बताया जाता है कि आपका चैट ऐप्लिकेशन जवाब नहीं दे रहा है. इससे बचने के लिए, आपको 30 सेकंड के अंदर इवेंट ऑब्जेक्ट मिलने की पुष्टि करनी होगी. इसके लिए, आपको खाली जवाब देना होगा:

Node.js

async function onEvent(req, res) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return res.send({});
};

Python

def on_event(event) -> dict:
  # Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return {}

Java

public String onEvent(JsonNode event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return "{}";
}

Apps Script

function onEvent(event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return null;
}

Chat API का इस्तेमाल करके मैसेज भेजने के लिए, पुष्टि करने की सुविधा सेट अप करें और spaces.messages.create तरीके को कॉल करें. इसका तरीका जानने के लिए, मैसेज भेजना लेख पढ़ें. Chat API के अन्य तरीकों का इस्तेमाल करने के बारे में जानने के लिए, Chat API की खास जानकारी देखें.

ऐड-ऑन के तौर पर काम न करने वाले चैट ऐप्लिकेशन: उपयोगकर्ता के इंटरैक्शन पाना और उनका जवाब देना

Google Workspace ऐड-ऑन के तौर पर काम न करने वाले Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन इवेंट ऑब्जेक्ट (EventObject) के बजाय, Chat API इंटरैक्शन इवेंट (Event) मिलते हैं. साथ ही, ये ऐप्लिकेशन किसी कार्रवाई के बजाय, Message संसाधन को रिटर्न करके जवाब देते हैं.

अगर आपको किसी ऐसे Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन फ़्रेमवर्क में अपग्रेड करना है जो ऐड-ऑन नहीं है, तो Google Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन में बदलना लेख पढ़ें.

इंटरैक्शन इवेंट के टाइप

उपयोगकर्ता के हर तरह के इंटरैक्शन के लिए, Google Chat एक Event ऑब्जेक्ट भेजता है. यह ऑब्जेक्ट, ऐड-ऑन के तौर पर काम न करने वाले चैट ऐप्लिकेशन को भेजा जाता है. इस ऑब्जेक्ट का टाइप, eventType फ़ील्ड से पता चलता है:

उपयोगकर्ता इंटरैक्शन eventType किसी ऐसे Chat ऐप्लिकेशन से मिलने वाला सामान्य जवाब जो ऐड-ऑन नहीं है
कोई उपयोगकर्ता, Chat ऐप्लिकेशन को मैसेज भेजता है. उदाहरण के लिए, Chat ऐप्लिकेशन को @mention करता है या स्लैश कमांड का इस्तेमाल करता है. MESSAGE चैट ऐप्लिकेशन, मैसेज के कॉन्टेंट के आधार पर जवाब देता है. उदाहरण के लिए, कोई Chat ऐप्लिकेशन, स्लैश कमांड /about का जवाब एक मैसेज के ज़रिए देता है. इस मैसेज में, उन टास्क के बारे में बताया जाता है जो Chat ऐप्लिकेशन कर सकता है.
जब कोई उपयोगकर्ता किसी स्पेस में चैट ऐप्लिकेशन जोड़ता है. ADDED_TO_SPACE चैट ऐप्लिकेशन, शामिल होने का मैसेज भेजता है. इसमें बताया जाता है कि यह ऐप्लिकेशन क्या करता है और स्पेस में मौजूद लोग इसके साथ कैसे इंटरैक्ट कर सकते हैं.
जब कोई उपयोगकर्ता किसी स्पेस से Chat ऐप्लिकेशन को हटाता है. REMOVED_FROM_SPACE Chat ऐप्लिकेशन, स्पेस के लिए कॉन्फ़िगर की गई सभी सूचनाओं को हटा देता है. जैसे, वेबहुक को मिटाना. साथ ही, इंटरनल स्टोरेज को खाली कर देता है.
कोई उपयोगकर्ता, Chat ऐप्लिकेशन के मैसेज, डायलॉग या होम पेज पर मौजूद कार्ड में किसी बटन पर क्लिक करता है. CARD_CLICKED चैट ऐप्लिकेशन, उपयोगकर्ता के सबमिट किए गए डेटा को प्रोसेस और सेव करता है या कोई दूसरा कार्ड दिखाता है.
कोई उपयोगकर्ता, 1:1 मैसेज में होम टैब पर क्लिक करके, चैट ऐप्लिकेशन का होम पेज खोलता है. APP_HOME चैट ऐप्लिकेशन, होम पेज से स्टैटिक या इंटरैक्टिव कार्ड दिखाता है.
कोई उपयोगकर्ता, Chat ऐप्लिकेशन के होम पेज से फ़ॉर्म सबमिट करता है. SUBMIT_FORM चैट ऐप्लिकेशन, उपयोगकर्ता के सबमिट किए गए डेटा को प्रोसेस और सेव करता है या कोई दूसरा कार्ड दिखाता है.
कोई उपयोगकर्ता, क्विक कमांड का इस्तेमाल करके किसी कमांड को चालू करता है. APP_COMMAND चैट ऐप्लिकेशन, इस्तेमाल किए गए निर्देश के आधार पर जवाब देता है. उदाहरण के लिए, Chat ऐप्लिकेशन About कमांड के जवाब में एक मैसेज भेजता है. इसमें उन टास्क के बारे में बताया जाता है जो Chat ऐप्लिकेशन कर सकता है.

साथ काम करने वाले सभी इंटरैक्शन इवेंट और JSON पेलोड के उदाहरण देखने के लिए, चैट ऐप्लिकेशन के इंटरैक्शन इवेंट के टाइप और EventType रेफ़रंस दस्तावेज़ देखें.

डायलॉग से इंटरैक्शन इवेंट

अगर आपका चैट ऐप्लिकेशन, ऐड-ऑन नहीं है और वह डायलॉग खोलता है, तो इंटरैक्शन इवेंट में यह अतिरिक्त जानकारी शामिल होती है. इसका इस्तेमाल करके, जवाब को प्रोसेस किया जा सकता है:

  • isDialogEvent फ़ील्ड को true पर सेट किया गया है.
  • DialogEventType (REQUEST_DIALOG, SUBMIT_DIALOG या CANCEL_DIALOG) से यह साफ़ तौर पर पता चलता है कि इंटरैक्शन से कोई डायलॉग बॉक्स खुलता है, डायलॉग बॉक्स से जानकारी सबमिट होती है या डायलॉग बॉक्स बंद होता है.

इंटरैक्शन इवेंट पाने के लिए, ऐसे Chat ऐप्लिकेशन को कॉन्फ़िगर करना जो ऐड-ऑन नहीं है

  1. Google Cloud console में, Chat API के कॉन्फ़िगरेशन पेज पर जाएं:

    Chat API के कॉन्फ़िगरेशन पेज पर जाना

  2. इंटरैक्टिव सुविधाएं में जाकर, इस Chat ऐप्लिकेशन को Google Workspace ऐड-ऑन के तौर पर बनाएं से सही का निशान हटाएं. इसके बाद, फ़ंक्शन, एक कनेक्शन सेटिंग एंडपॉइंट (एचटीटीपी एंडपॉइंट यूआरएल, Apps Script, Cloud Pub/Sub विषय का नाम या Dialogflow), कमांड, स्टार्टर प्रॉम्प्ट, लिंक की झलक, और किसको दिखे को कॉन्फ़िगर करें.

  3. सेव करें पर क्लिक करें.

किसी ऐसे Chat ऐप्लिकेशन में मैसेज का जवाब देना जो ऐड-ऑन नहीं है

किसी ऐसे चैट ऐप्लिकेशन में सिंक्रोनस तरीके से जवाब देने के लिए जो ऐड-ऑन नहीं है, सीधे तौर पर Message ऑब्जेक्ट दिखाएं. नीचे दिए गए उदाहरण में, टेक्स्ट मैसेज की मदद से ADDED_TO_SPACE इंटरैक्शन इवेंट का जवाब दिया गया है:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
        'learn what else I can do, type `/help`.'
    });
  }
};

Python

from flask import Flask, request, json
app = Flask(__name__)

@app.route('/', methods=['POST'])
def cymbal_app():
  """Sends an onboarding message when the Chat app is added to a space.

  Returns:
    Mapping[str, Any]: The response object from the Chat app.
  """
  event = request.get_json()
  if event['type'] == 'ADDED_TO_SPACE':
    return json.jsonify({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
      'from Google Chat. Take a look at your schedule today by typing ' +
      '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
      'learn what else I can do, type `/help`.'
    })
  return json.jsonify({})

Java

@SpringBootApplication
@RestController
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }

  /*
   * Sends an onboarding message when the Chat app is added to a space.
   *
   * @return The response object from the Chat app.
   */
  @PostMapping("/")
  @ResponseBody
  public Message onEvent(@RequestBody JsonNode event) {
    switch (event.get("type").asText()) {
      case "ADDED_TO_SPACE":
        return new Message().setText(
          "Hi, Cymbal at your service. I help you manage your calendar " +
          "from Google Chat. Take a look at your schedule today by typing " +
          "`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
          "To learn what else I can do, type `/help`.");
      default:
        return new Message();
    }
  }
}

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app.
 */
function onAddToSpace(event) {
  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
      'from Google Chat. Take a look at your schedule today by typing ' +
      '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn ' +
      'what else I can do, type `/help`.'
  };
}