इस पेज पर, बाहरी ट्रिगर का इस्तेमाल करके चैट स्पेस में एसिंक्रोनस मैसेज भेजने के लिए, वेबहुक सेट अप करने का तरीका बताया गया है. उदाहरण के लिए, किसी सर्वर के बंद होने पर, कॉल पर मौजूद लोगों को Chat पर सूचना देने के लिए, मॉनिटरिंग ऐप्लिकेशन को कॉन्फ़िगर किया जा सकता है. Chat ऐप्लिकेशन से एक ही समय पर सभी डिवाइसों पर मैसेज भेजने के लिए, मैसेज भेजना लेख पढ़ें.
इस तरह के आर्किटेक्चर डिज़ाइन में, उपयोगकर्ता webhook या कनेक्ट किए गए बाहरी ऐप्लिकेशन के साथ इंटरैक्ट नहीं कर सकते, क्योंकि इसमें एकतरफ़ा कम्यूनिकेशन होता है. वेबहुक, बातचीत वाली सुविधा नहीं देते. वे उपयोगकर्ताओं के मैसेज का जवाब नहीं दे सकते या उनसे मैसेज नहीं पा सकते. इसके अलावा, वे Chat ऐप्लिकेशन के इंटरैक्शन इवेंट से भी मैसेज नहीं पा सकते. मैसेज का जवाब देने के लिए, webhook के बजाय Chat ऐप्लिकेशन बनाएं.
तकनीकी तौर पर, webhook एक Chat ऐप्लिकेशन नहीं है. webhook, स्टैंडर्ड एचटीटीपी अनुरोधों का इस्तेमाल करके ऐप्लिकेशन को कनेक्ट करते हैं. हालांकि, इस पेज पर इसे आसानी से समझाने के लिए, webhook को Chat ऐप्लिकेशन कहा गया है. हर वेबहुक सिर्फ़ उस चैट स्पेस में काम करता है जिसमें उसे रजिस्टर किया गया है. इनकमिंग वेबहुक, डायरेक्ट मैसेज में काम करते हैं. हालांकि, ऐसा सिर्फ़ तब होता है, जब सभी उपयोगकर्ताओं ने Chat ऐप्लिकेशन चालू किए हों. Google Workspace Marketplace में वेबहुक पब्लिश नहीं किए जा सकते.
इस डायग्राम में, Chat से कनेक्ट किए गए वेबहुक का आर्किटेक्चर दिखाया गया है:
पिछले डायग्राम में, Chat ऐप्लिकेशन में जानकारी का यह फ़्लो दिखाया गया है:
- Chat ऐप्लिकेशन के लॉजिक को तीसरे पक्ष की बाहरी सेवाओं से जानकारी मिलती है. जैसे, प्रोजेक्ट मैनेजमेंट सिस्टम या टिकट करने वाला टूल.
- Chat ऐप्लिकेशन का लॉजिक, क्लाउड या ऑन-प्राइमिस सिस्टम में होस्ट किया जाता है. यह किसी खास Chat स्पेस में वेबहुक यूआरएल का इस्तेमाल करके मैसेज भेज सकता है.
- उपयोगकर्ताओं को उस Chat स्पेस में Chat ऐप्लिकेशन से मैसेज मिल सकते हैं, लेकिन वे Chat ऐप्लिकेशन से इंटरैक्ट नहीं कर सकते.
ज़रूरी शर्तें
- आपके पास Google Chat का ऐक्सेस हो और आपके पास Google Workspace का Business या Enterprise वर्शन वाला खाता हो. आपके Google Workspace संगठन को उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और इस्तेमाल करने की अनुमति देनी होगी.
- Python 3.6 या इसके बाद का वर्शन
- pip पैकेज मैनेजमेंट टूल
httplib2
लाइब्रेरी. लाइब्रेरी इंस्टॉल करने के लिए, अपने कमांड-लाइन इंटरफ़ेस में यह कमांड चलाएं:pip install httplib2
Google Chat में मौजूद कोई स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना लेख पढ़ें. Chat में कोई दस्तावेज़ बनाने के लिए, सहायता केंद्र के दस्तावेज़ पर जाएं.
- आपके पास Google Chat का ऐक्सेस हो और आपके पास Google Workspace का Business या Enterprise वर्शन वाला खाता हो. आपके Google Workspace संगठन को उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और इस्तेमाल करने की अनुमति देनी होगी.
- Node.js 14 या इसके बाद का वर्शन
- npm पैकेज मैनेजमेंट टूल
- Google Chat में मौजूद कोई स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना लेख पढ़ें. Chat में कोई दस्तावेज़ बनाने के लिए, सहायता केंद्र के दस्तावेज़ पर जाएं.
- आपके पास Google Chat का ऐक्सेस हो और आपके पास Google Workspace का Business या Enterprise वर्शन वाला खाता हो. आपके Google Workspace संगठन को उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और इस्तेमाल करने की अनुमति देनी होगी.
- Java 11 या उसके बाद का वर्शन
- Maven पैकेज मैनेजमेंट टूल
- Google Chat में मौजूद कोई स्पेस. Google Chat API का इस्तेमाल करके स्पेस बनाने के लिए, स्पेस बनाना लेख पढ़ें. Chat में कोई दस्तावेज़ बनाने के लिए, सहायता केंद्र के दस्तावेज़ पर जाएं.
- आपके पास Google Chat का ऐक्सेस हो और आपके पास Google Workspace का Business या Enterprise वर्शन वाला खाता हो. आपके 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
डालें.सेव करें पर क्लिक करें.
वेबहुक का यूआरएल कॉपी करने के लिए,
ज़्यादा पर क्लिक करें. इसके बाद, लिंक कॉपी करें पर क्लिक करें.
वेबहुक स्क्रिप्ट लिखना
वेबहुक स्क्रिप्ट का उदाहरण, वेबहुक यूआरएल पर POST
अनुरोध भेजकर, उस स्पेस में मैसेज भेजता है जिसमें वेबहुक रजिस्टर किया गया है. Chat API, Message
के किसी इंस्टेंस के साथ जवाब देता है.
वेबहुक स्क्रिप्ट बनाने का तरीका जानने के लिए, कोई भाषा चुनें:
अपनी वर्किंग डायरेक्ट्री में,
quickstart.py
नाम की फ़ाइल बनाएं.quickstart.py
में, यह कोड चिपकाएं:url
वैरिएबल की वैल्यू को उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
अपनी वर्किंग डायरेक्ट्री में,
index.js
नाम की फ़ाइल बनाएं.index.js
में, यह कोड चिपकाएं:url
वैरिएबल की वैल्यू को उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
अपनी वर्किंग डायरेक्ट्री में,
pom.xml
नाम की फ़ाइल बनाएं.pom.xml
में, यह कॉपी करके चिपकाएं:अपनी वर्किंग डायरेक्ट्री में, यह डायरेक्ट्री स्ट्रक्चर बनाएं
src/main/java
.src/main/java
डायरेक्ट्री में,App.java
नाम की फ़ाइल बनाएं.App.java
में, यह कोड चिपकाएं:URL
वैरिएबल की वैल्यू को उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
ब्राउज़र में, Apps Script पर जाएं.
नया प्रोजेक्ट पर क्लिक करें
यह कोड चिपकाएं:
url
वैरिएबल की वैल्यू को उस वेबहुक यूआरएल से बदलें जिसे आपने वेबहुक रजिस्टर करते समय कॉपी किया था.
वेबहुक स्क्रिप्ट चलाना
सीएलआई में, स्क्रिप्ट चलाएं:
python3 quickstart.py
node index.js
mvn compile exec:java -Dexec.mainClass=App
- चलाएं पर क्लिक करें.
कोड चलाने पर, वेबहुक उस स्पेस में मैसेज भेजता है जिसमें आपने इसे रजिस्टर किया है.
मैसेज थ्रेड शुरू करना या उसका जवाब देना
मैसेज के अनुरोध के मुख्य हिस्से के तौर पर,
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
देखें.
यहां दिया गया कोड सैंपल, मैसेज थ्रेड शुरू करता है या उस पर जवाब देता है:
गड़बड़ियां ठीक करना
कई वजहों से वेबहुक अनुरोध पूरा नहीं हो पाते. इनमें ये वजहें शामिल हैं:
- अनुरोध अमान्य है.
- वेबहुक या वेबहुक को होस्ट करने वाले स्पेस को मिटा दिया जाता है.
- नेटवर्क कनेक्टिविटी या कोटा की सीमाओं जैसी समस्याएं, जो कभी-कभी आती हैं.
वेबहुक बनाते समय, आपको गड़बड़ियों को सही तरीके से मैनेज करना चाहिए. इसके लिए:
- गड़बड़ी को लॉग किया जा रहा है.
- समय, कोटा या नेटवर्क कनेक्टिविटी से जुड़ी गड़बड़ियों के लिए, एक्सपोनेंशियल बैकऑफ़ के साथ अनुरोध को फिर से आज़माना.
- कुछ न करना. यह तब सही होता है, जब वेबहुक मैसेज भेजना ज़रूरी न हो.
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
के लिए, हर स्पेस के लिए कोटा लागू होता है: हर 60 सेकंड में 60 अनुरोध, जो स्पेस में मौजूद सभी वेबहुक के बीच शेयर किए जाते हैं. Chat, एक ही स्पेस में एक सेकंड में एक से ज़्यादा क्वेरी वाले वेबहुक अनुरोधों को भी अस्वीकार कर सकता है. Chat API के कोटे के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं देखें.