इस पेज पर, बाहरी ट्रिगर का इस्तेमाल करके, 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 का स्टैंडअलोन प्रोजेक्ट बनाएं और ऐडवांस चैट सेवा चालू करें.
- 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 के कोटे के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल करने की सीमाएं देखें.