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