इस पेज पर, Chat स्पेस में एसिंक्रोनस मैसेज भेजने के लिए, बाहरी ट्रिगर का इस्तेमाल करके वेबहुक सेट अप करने का तरीका बताया गया है. उदाहरण के लिए, सर्वर डाउन होने पर, ऑन-कॉल स्टाफ़ को Chat पर सूचना देने के लिए, मॉनिटरिंग ऐप्लिकेशन को कॉन्फ़िगर किया जा सकता है. Chat ऐप्लिकेशन से सिंक्रोनस मैसेज भेजने के लिए, मैसेज भेजना देखें .
इस तरह के आर्किटेक्चर डिज़ाइन में, उपयोगकर्ता वेबहुक या उससे कनेक्ट किए गए बाहरी ऐप्लिकेशन के साथ इंटरैक्ट नहीं कर सकते, क्योंकि कम्यूनिकेशन एकतरफ़ा होता है. वेबहुक से बातचीत नहीं की जा सकती. वे उपयोगकर्ताओं या Chat ऐप्लिकेशन के इंटरैक्शन इवेंट से मैसेज का जवाब नहीं दे सकते या उन्हें पा नहीं सकते. मैसेज का जवाब देने के लिए, वेबहुक के बजाय Chat ऐप्लिकेशन बनाएं.
वेबहुक, तकनीकी तौर पर Chat ऐप्लिकेशन नहीं है. वेबहुक, स्टैंडर्ड एचटीटीपी अनुरोधों का इस्तेमाल करके ऐप्लिकेशन को कनेक्ट करते हैं. हालांकि, इस पेज पर इसे Chat ऐप्लिकेशन के तौर पर बताया गया है, ताकि इसे आसानी से समझा जा सके. हर वेबहुक, सिर्फ़ उस Chat स्पेस में काम करता है जिसमें उसे रजिस्टर किया गया है. इनकमिंग वेबहुक, डायरेक्ट मैसेज में काम करते हैं. हालांकि, ऐसा तब ही होता है, जब सभी उपयोगकर्ताओं ने Chat ऐप्लिकेशन चालू किए हों. वेबहुक को Google Workspace Marketplace पर पब्लिश नहीं किया जा सकता.
नीचे दिए गए डायग्राम में, Chat से कनेक्ट किए गए वेबहुक का आर्किटेक्चर दिखाया गया है:
ऊपर दिए गए डायग्राम में, Chat ऐप्लिकेशन में जानकारी का फ़्लो इस तरह होता है:
- Chat ऐप्लिकेशन की लॉजिक, तीसरे पक्ष की बाहरी सेवाओं से जानकारी लेता है. जैसे, प्रोजेक्ट मैनेजमेंट सिस्टम या टिकट टूल.
- Chat ऐप्लिकेशन की लॉजिक, क्लाउड या ऑन-प्रिमाइसेस सिस्टम में होस्ट की जाती है. यह सिस्टम, किसी खास Chat स्पेस में वेबहुक यूआरएल का इस्तेमाल करके मैसेज भेज सकता है.
- उपयोगकर्ता, उस खास Chat स्पेस में Chat ऐप्लिकेशन से मैसेज पा सकते हैं. हालांकि, वे Chat ऐप्लिकेशन के साथ इंटरैक्ट नहीं कर सकते.
ज़रूरी शर्तें
Node.js
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat का ऐक्सेस हो. आपके Google Workspace संगठन को, उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और उनका इस्तेमाल करने की अनुमति देनी होगी.
- Node.js 14 या इसके बाद वाला वर्शन
- npm पैकेज मैनेजमेंट टूल
- Google Chat स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना देखें. Chat में स्पेस बनाने के लिए, देखें सहायता केंद्र का दस्तावेज़.
Python
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat का ऐक्सेस हो. आपके Google Workspace संगठन को, उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और उनका इस्तेमाल करने की अनुमति देनी होगी.
- Python 3.6 या इसके बाद वाला वर्शन
- pip पैकेज मैनेजमेंट टूल
httplib2लाइब्रेरी. लाइब्रेरी इंस्टॉल करने के लिए, कमांड-लाइन इंटरफ़ेस में यह कमांड चलाएं:pip install httplib2Google Chat स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना देखें. Chat में स्पेस बनाने के लिए, देखें सहायता केंद्र का दस्तावेज़.
Java
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat का ऐक्सेस हो. आपके Google Workspace संगठन को, उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और उनका इस्तेमाल करने की अनुमति देनी होगी.
- Java 11 या इसके बाद वाला वर्शन
- Maven पैकेज मैनेजमेंट टूल
- Google Chat स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना देखें. Chat में स्पेस बनाने के लिए, देखें सहायता केंद्र का दस्तावेज़.
Apps Script
- Business या Enterprise Google Workspace खाता, जिसमें Google Chat का ऐक्सेस हो. आपके Google Workspace संगठन को, उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और उनका इस्तेमाल करने की अनुमति देनी होगी.
- Apps Script का स्टैंडअलोन प्रोजेक्ट बनाएं, और Chat की बेहतर सेवा चालू करें.
- Google Chat स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना देखें. Chat में स्पेस बनाने के लिए, देखें सहायता केंद्र का दस्तावेज़.
वेबहुक बनाना
वेबहुक बनाने के लिए, उसे उस Chat स्पेस में रजिस्टर करें जहां आपको मैसेज पाने हैं. इसके बाद, मैसेज भेजने वाली स्क्रिप्ट लिखें.
इनकमिंग वेबहुक रजिस्टर करना
- किसी ब्राउज़र में, Chat खोलें. Chat के मोबाइल ऐप्लिकेशन से, वेबहुक कॉन्फ़िगर नहीं किए जा सकते.
- उस स्पेस पर जाएं जहां आपको वेबहुक जोड़ना है.
- स्पेस के टाइटल के बगल में, ज़्यादा दिखाएं तीर पर क्लिक करें. इसके बाद, ऐप्लिकेशन और इंटिग्रेशन पर क्लिक करें.
वेबहुक जोड़ें पर क्लिक करें.
नाम फ़ील्ड में,
Quickstart Webhookडालें.अवतार यूआरएल फ़ील्ड में,
https://developers.google.com/chat/images/chat-product-icon.pngडालें.सेव करें पर क्लिक करें.
वेबहुक का यूआरएल कॉपी करने के लिए, ज़्यादा पर क्लिक करें. इसके बाद, लिंक कॉपी करें पर क्लिक करें.
वेबहुक के यूआरएल में दो पैरामीटर होते हैं:
key. यह वेबहुक के बीच शेयर की जाने वाली एक सामान्य वैल्यू होती है . दूसरा पैरामीटरtokenहोता है. यह एक यूनीक वैल्यू होती है. इसे गोपनीय रखना ज़रूरी है , ताकि आपके वेबहुक की सुरक्षा बनी रहे.
वेबहुक की स्क्रिप्ट लिखना
वेबहुक की स्क्रिप्ट का उदाहरण, वेबहुक के यूआरएल पर POST अनुरोध भेजकर, उस स्पेस में मैसेज भेजता है जिसमें वेबहुक रजिस्टर किया गया है. Chat API,
Message का इंस्टेंस दिखाता है.
वेबहुक की स्क्रिप्ट बनाने का तरीका जानने के लिए, कोई भाषा चुनें:
Node.js
अपनी वर्किंग डायरेक्ट्री में,
index.jsनाम की फ़ाइल बनाएं.index.jsमें, यह कोड चिपकाएं:urlवैरिएबल की वैल्यू को, उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
Python
अपनी वर्किंग डायरेक्ट्री में,
quickstart.pyनाम की फ़ाइल बनाएं.quickstart.pyमें, यह कोड चिपकाएं:urlवैरिएबल की वैल्यू को, उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
Java
अपनी वर्किंग डायरेक्ट्री में,
pom.xmlनाम की फ़ाइल बनाएं.pom.xmlमें, यह कोड कॉपी करके चिपकाएं:अपनी वर्किंग डायरेक्ट्री में, डायरेक्ट्री का यह स्ट्रक्चर बनाएं:
src/main/java.src/main/javaडायरेक्ट्री में,App.javaनाम की फ़ाइल बनाएं.App.javaमें, यह कोड चिपकाएं:URLवैरिएबल की वैल्यू को, उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
Apps Script
किसी ब्राउज़र में, Apps Script पर जाएं.
नया प्रोजेक्ट पर क्लिक करें
यह कोड चिपकाएं:
urlवैरिएबल की वैल्यू को, उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
वेबहुक की स्क्रिप्ट चलाना
सीएलआई में, स्क्रिप्ट चलाएं:
Node.js
node index.jsPython
python3 quickstart.pyJava
mvn compile exec:java -Dexec.mainClass=AppApps Script
- चलाएं पर क्लिक करें.
कोड चलाने पर, वेबहुक उस स्पेस में मैसेज भेजता है जिसमें आपने उसे रजिस्टर किया था.
मैसेज थ्रेड शुरू करना या उसका जवाब देना
मैसेज के अनुरोध के मुख्य हिस्से में,
spaces.messages.thread.threadKeyतय करें. थ्रेड शुरू करने या उसका जवाब देने के हिसाब से,threadKeyके लिए ये वैल्यू इस्तेमाल करें:थ्रेड शुरू करने पर,
threadKeyको कोई भी स्ट्रिंग पर सेट करें. हालांकि, थ्रेड का जवाब पोस्ट करने के लिए, इस वैल्यू को नोट कर लें.थ्रेड का जवाब देने पर, वह
threadKeyतय करें जिसे थ्रेड शुरू करते समय सेट किया गया था. उदाहरण के लिए, उस थ्रेड का जवाब पोस्ट करने के लिए जिसमें शुरुआती मैसेज मेंMY-THREADका इस्तेमाल किया गया था,MY-THREADसेट करें.
अगर तय किया गया
threadKeyनहीं मिलता है, तो थ्रेड के व्यवहार को तय करें:थ्रेड का जवाब दें या नई थ्रेड शुरू करें. वेबहुक के यूआरएल में,
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREADपैरामीटर जोड़ें. इस यूआरएल पैरामीटर को पास करने पर, Chat, तय किए गएthreadKeyका इस्तेमाल करके, मौजूदा थ्रेड को खोजता है. अगर कोई थ्रेड मिलती है, तो मैसेज उस थ्रेड के जवाब के तौर पर पोस्ट होता है. अगर कोई थ्रेड नहीं मिलती है, तो मैसेज उसthreadKeyके लिए नई थ्रेड शुरू करता है.थ्रेड का जवाब दें या कुछ न करें. वेबहुक के यूआरएल में,
messageReplyOption=REPLY_MESSAGE_OR_FAILपैरामीटर जोड़ें. इस यूआरएल पैरामीटर को पास करने पर, Chat, तय किए गएthreadKeyका इस्तेमाल करके, मौजूदा थ्रेड को खोजता है. अगर कोई थ्रेड मिलती है, तो मैसेज उस थ्रेड के जवाब के तौर पर पोस्ट होता है. अगर कोई थ्रेड नहीं मिलती है, तो मैसेज नहीं भेजा जाता.
ज़्यादा जानने के लिए,
messageReplyOptionदेखें.
कोड के इस सैंपल से, मैसेज थ्रेड शुरू की जा सकती है या उसका जवाब दिया जा सकता है:
Node.js
Python
Java
Apps Script
गड़बड़ियों को ठीक करना
वेबहुक के अनुरोध कई वजहों से पूरे नहीं हो सकते. इनमें ये वजहें शामिल हैं:
- अनुरोध अमान्य है.
- वेबहुक या वह स्पेस जिसमें वेबहुक होस्ट किया गया है, मिटा दिया गया है.
- इंटरनेट कनेक्टिविटी या कोटा की सीमाओं जैसी रुक-रुक कर होने वाली समस्याएं.
वेबहुक बनाते समय, आपको गड़बड़ियों को ठीक करने के लिए, यह तरीका अपनाना चाहिए:
- अनुरोध पूरा न होने की जानकारी लॉग करना.
- समय के हिसाब से, कोटा या इंटरनेट कनेक्टिविटी से जुड़ी गड़बड़ियों के लिए, एक्सपोनेन्शियल बैकऑफ़ के साथ अनुरोध को फिर से भेजना.
- कुछ न करना. यह तब सही है, जब वेबहुक का मैसेज भेजना ज़रूरी न हो.
Google Chat API, गड़बड़ियों को
google.rpc.Status,
के तौर पर दिखाता है. इसमें एचटीटीपी गड़बड़ी का code शामिल होता है. इससे पता चलता है कि किस तरह की गड़बड़ी हुई है: क्लाइंट की गड़बड़ी (400 सीरीज़) या सर्वर की गड़बड़ी (500 सीरीज़). सभी एचटीटीपी मैपिंग की समीक्षा करने के लिए, देखें
google.rpc.Code.
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
एचटीटीपी स्टेटस कोड को समझने और गड़बड़ियों को ठीक करने का तरीका जानने के लिए, गड़बड़ियां देखें.
सीमाएं और ज़रूरी बातें
- Google Chat API में, वेबहुक की मदद से मैसेज बनाते समय, जवाब में पूरा मैसेज नहीं दिखता.
जवाब में सिर्फ़
nameऔरthread.nameफ़ील्ड दिखते हैं. - वेबहुक पर,
spaces.messages.createके लिए, हर स्पेस के हिसाब से कोटा लागू होता है: हर सेकंड में एक अनुरोध. यह कोटा, स्पेस में मौजूद सभी वेबहुक के बीच शेयर किया जाता है. Chat, एक ही स्पेस में हर सेकंड में एक से ज़्यादा क्वेरी वाले वेबहुक के अनुरोधों को भी अस्वीकार कर सकता है. Chat API कोटा के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं देखें.