Chat ऐप्लिकेशन को अन्य सेवाओं और टूल से जोड़ना

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

तीसरे पक्ष की सेवा या OAuth फ़्लो की मदद से उपयोगकर्ताओं की पुष्टि करने के लिए, आपका Chat ऐप्लिकेशन यह तरीका अपनाता है:

  1. यह पता लगाना कि अनुमति या कॉन्फ़िगरेशन कब ज़रूरी है.
  2. बुनियादी अनुमति वाला कार्ड दिखाएं, जिसमें उपयोगकर्ता को साइन इन करने या सेवा कॉन्फ़िगर करने के लिए कहा गया हो.
  3. रीडायरेक्ट यूआरआई को पूरा करें, ताकि उपयोगकर्ता के अनुमति देने के बाद Google Chat अपने-आप ओरिजनल इंटरैक्शन को फिर से शुरू कर सके.

Google Chat ऐप्लिकेशन, तीसरे पक्ष की सेवा के साथ पुष्टि कैसे करते हैं, इसका आर्किटेक्चर.

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

HTTP

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

Apps Script

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

यह पता लगाना कि अनुमति देना ज़रूरी है

आपके Chat ऐप्लिकेशन से इंटरैक्ट करते समय, उपयोगकर्ताओं के पास सुरक्षित किए गए किसी संसाधन को ऐक्सेस करने की अनुमति नहीं हो सकती. इसकी कई वजहें हो सकती हैं. जैसे:

  • तीसरे पक्ष की सेवा से कनेक्ट करने के लिए, ऐक्सेस टोकन जनरेट नहीं किया गया है या उसकी समयसीमा खत्म हो गई है.
  • ऐक्सेस टोकन में, अनुरोध किया गया संसाधन शामिल नहीं है.
  • ऐक्सेस टोकन में, अनुरोध के लिए ज़रूरी स्कोप शामिल नहीं हैं.

आपके Chat ऐप्लिकेशन को इन मामलों का पता लगाना चाहिए, ताकि लोग साइन इन कर सकें और आपकी सेवा को ऐक्सेस करने की अनुमति दे सकें.

अगर Apps Script में कोई ऐप्लिकेशन बनाया जा रहा है, तो OAuth2 for Google Apps Script library (या OAuth1 वर्शन) का इस्तेमाल किया जा सकता है. इसमें hasAccess फ़ंक्शन यह जांच करता है कि उपयोगकर्ता ने किसी सेवा को ऐक्सेस करने की अनुमति दी है या नहीं. इसके अलावा, UrlFetchApp.fetch अनुरोधों का इस्तेमाल करते समय, muteHttpExceptions पैरामीटर को true पर सेट किया जा सकता है. इससे, दिखाए गए HttpResponse ऑब्जेक्ट में मौजूद रिस्पॉन्स कोड और कॉन्टेंट की जांच की जा सकती है.

उपयोगकर्ताओं को बुनियादी अनुमति वाला कार्ड दिखाना

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

इस इमेज में, Google के बुनियादी पुष्टि वाले कार्ड का उदाहरण दिखाया गया है:

उदाहरण के तौर पर दिए गए खाते के लिए, बुनियादी अनुमति का अनुरोध करने वाला प्रॉम्प्ट.
पहली इमेज: उदाहरण के तौर पर दिए गए खाते के लिए, अनुमति देने का बुनियादी प्रॉम्प्ट. प्रॉम्प्ट में बताया गया है कि Chat ऐप्लिकेशन, ज़्यादा जानकारी दिखाना चाहता है. हालांकि, इसके लिए उसे उपयोगकर्ता के खाते को ऐक्सेस करने की अनुमति चाहिए.

उपयोगकर्ताओं को बुनियादी ऑथराइज़ेशन कार्ड दिखाने के लिए, AuthorizationError ऑब्जेक्ट दिखाएं:

HTTP

यह JSON रिस्पॉन्स दिखाएं:

{
  "basic_authorization_prompt": {
    "authorization_url": "<var>AUTHORIZATION_URL</var>",
    "resource": "<var>RESOURCE_DISPLAY_NAME</var>"
  }
}

Apps Script

CardService.newAuthorizationException()
    .setAuthorizationUrl('<var>AUTHORIZATION_URL</var>')
    .setResourceDisplayName('<var>RESOURCE_DISPLAY_NAME</var>')
    .throwException();

इनकी जगह ये डालें:

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

कॉन्फ़िगरेशन का अनुरोध पूरा करना

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

इन ट्रिगर के लिए, आपके Chat ऐप्लिकेशन को इवेंट पेलोड में पूरा होने का रीडायरेक्ट यूआरआई (configCompleteRedirectUri / completeRedirectUri) मिलता है:

  • मैसेज: chat.messagePayload.configCompleteRedirectUri
  • स्पेस में जोड़ा गया: chat.addedToSpacePayload.configCompleteRedirectUri
  • ऐप्लिकेशन कमांड: chat.appCommandPayload.configCompleteRedirectUri

आपको इस रीडायरेक्ट यूआरआई को अपने <var>AUTHORIZATION_URL</var> में एन्कोड करना होगा. साथ ही, अनुमति देने की प्रोसेस पूरी होने के बाद, उपयोगकर्ता के ब्राउज़र को इस पर रीडायरेक्ट करना होगा. इस यूआरएल पर रीडायरेक्ट करने से, Google Chat को यह सूचना मिलती है कि अनुमति देने या कॉन्फ़िगरेशन का अनुरोध पूरा हो गया है.

जब किसी उपयोगकर्ता को, मूल इवेंट के पेलोड में दिए गए रीडायरेक्ट यूआरआई पर रीडायरेक्ट कर दिया जाता है, तो Google Chat ये काम करता है:

  1. यह कुकी, अनुरोध करने वाले उपयोगकर्ता को दिखने वाले निजी अनुमति के प्रॉम्प्ट को मिटा देती है.
  2. ओरिजनल मैसेज को सार्वजनिक में बदलता है, ताकि वह स्पेस के अन्य सदस्यों को दिख सके.
  3. यह कुकी, ओरिजनल इवेंट ऑब्जेक्ट को आपके Chat ऐप्लिकेशन पर दूसरी बार भेजती है.

अगर आपने रीडायरेक्ट यूआरआई को पूरा करने के लिए रीडायरेक्ट नहीं किया है, तो उपयोगकर्ता अब भी अनुमति देने की प्रोसेस पूरी कर सकता है. हालांकि, Google Chat पिछली प्रोसेस को अपने-आप फिर से शुरू नहीं करता है. साथ ही, उपयोगकर्ता को आपके Chat ऐप्लिकेशन को मैन्युअल तरीके से फिर से शुरू करना होगा.

रीडायरेक्ट यूआरआई पर जाने से, सिर्फ़ एक उपयोगकर्ता इंटरैक्शन पर असर पड़ता है. अगर किसी उपयोगकर्ता ने Chat ऐप्लिकेशन को कई बार मैसेज किया है और उसे कई प्रॉम्प्ट मिले हैं, तो किसी एक प्रॉम्प्ट के लिए पुष्टि करने और कॉन्फ़िगरेशन की प्रोसेस पूरी करने से, सिर्फ़ उस इंटरैक्शन को फिर से आज़माया जाता है.

Chat इस्तेमाल करने वाले व्यक्ति की पुष्टि, Chat से बाहर करें

Chat से बाहर के किसी यूआरएल (जैसे कि OAuth वेब कॉल बैक) से लिंक करते समय, आपको अक्सर बाहरी वेब सेशन को Chat में उपयोगकर्ता की पहचान से जोड़ना होता है. हमारा सुझाव है कि आप डेस्टिनेशन वेब ऐप्लिकेशन को Google साइन-इन की मदद से सुरक्षित रखें.

उपयोगकर्ता आईडी पाने के लिए, साइन-इन के दौरान जारी किए गए पहचान टोकन का इस्तेमाल करें. sub दावे में उपयोगकर्ता का यूनीक Google आईडी होता है. इसे Google Chat में मौजूद उपयोगकर्ता के संसाधन के नाम (chat.user.name) से जोड़ा जा सकता है.

sub दावे को Google Chat के users/{user} संसाधन के नाम से जोड़ने के लिए, sub दावे की वैल्यू से पहले users/ जोड़ें. उदाहरण के लिए, sub की 123 वैल्यू, आपके Chat ऐप्लिकेशन को भेजे गए इवेंट ऑब्जेक्ट में users/123 से मेल खाती है.

कोड सैंपल

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

ऐसे चैट ऐप्लिकेशन जो ऐड-ऑन नहीं हैं: किसी चैट ऐप्लिकेशन को अन्य सेवाओं और टूल से कनेक्ट करना

अगर आपके पास ऐसा Chat ऐप्लिकेशन है जो Google Workspace ऐड-ऑन नहीं है, तो आपका Chat ऐप्लिकेशन, REQUEST_CONFIG टाइप के actionResponse का इस्तेमाल करके कॉन्फ़िगरेशन का अनुरोध करता है. साथ ही, टॉप-लेवल के Event ऑब्जेक्ट से configCompleteRedirectUrl को पढ़ता है.

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

Chat ऐप्लिकेशन में किसी ऐसे उपयोगकर्ता से कॉन्फ़िगरेशन का अनुरोध करना जो ऐड-ऑन नहीं है

किसी ऐसे Chat ऐप्लिकेशन में कॉन्फ़िगरेशन यूआरएल को उपयोगकर्ता को इस फ़ॉर्म में दिखाएं जो ऐड-ऑन नहीं है:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

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

Chat ऐप्लिकेशन में कॉन्फ़िगरेशन का अनुरोध पूरा करना, जो ऐड-ऑन नहीं है

MESSAGE, ADDED_TO_SPACE, और APP_COMMAND के साथ होने वाली हर बातचीत Event में, टॉप-लेवल फ़ील्ड configCompleteRedirectUrl शामिल होता है. यह बातचीत, ऐसे Chat ऐप्लिकेशन के साथ होती है जो ऐड-ऑन नहीं है. इस यूआरएल को अपने कॉन्फ़िगरेशन यूआरएल में कोड में बदलें और पूरा होने पर उपयोगकर्ता को इस पर रीडायरेक्ट करें, ताकि Google Chat प्रॉम्प्ट को मिटा दे, ओरिजनल मैसेज को सार्वजनिक में बदल दे, और ओरिजनल इंटरैक्शन इवेंट को आपके Chat ऐप्लिकेशन पर फिर से भेज दे.

लागू करने के उदाहरणों के लिए, GitHub पर Node.js कनेक्टिविटी ऐप्लिकेशन का सैंपल और Python MyProfile auth ऐप्लिकेशन का सैंपल देखें.