इस पेज पर, बाहरी ट्रिगर का इस्तेमाल करके, Chat स्पेस में एसिंक्रोनस मैसेज भेजने के लिए वेबुक सेट अप करने का तरीका बताया गया है. उदाहरण के लिए, किसी सर्वर के बंद होने पर, कॉल पर मौजूद व्यक्ति को Chat पर सूचना देने के लिए, मॉनिटरिंग ऐप्लिकेशन को कॉन्फ़िगर किया जा सकता है. Chat ऐप्लिकेशन से सिंक्रोनस मैसेज भेजने के लिए, मैसेज भेजना लेख पढ़ें.
इस तरह के आर्किटेक्चर डिज़ाइन में, उपयोगकर्ता वेबुक या कनेक्ट किए गए बाहरी ऐप्लिकेशन के साथ इंटरैक्ट नहीं कर सकते, क्योंकि कम्यूनिकेशन एकतरफ़ा होता है. वेबहुक से बातचीत नहीं की जा सकती. वे न तो उपयोगकर्ताओं से मैसेज पा सकते हैं और न ही उन्हें जवाब दे सकते हैं. इसके अलावा, वे Chat ऐप्लिकेशन के इंटरैक्शन इवेंट भी नहीं पा सकते. मैसेजों का जवाब देने के लिए, वेबुक के बजाय Chat ऐप्लिकेशन बनाएं.
तकनीकी तौर पर, वेबुक Chat ऐप्लिकेशन नहीं है. वेबुक, स्टैंडर्ड एचटीटीपी अनुरोधों का इस्तेमाल करके ऐप्लिकेशन कनेक्ट करते हैं. हालांकि, इस पेज पर इसे Chat ऐप्लिकेशन के तौर पर बताया गया है, ताकि इसे आसानी से समझा जा सके. हर वेबुक, सिर्फ़ उस Chat स्पेस में काम करता है जिसमें उसे रजिस्टर किया गया है. इनकमिंग वेबहुक, डायरेक्ट मैसेज में काम करते हैं. हालांकि, ऐसा सिर्फ़ तब होता है, जब सभी उपयोगकर्ताओं ने Chat ऐप्लिकेशन चालू किए हों. Google Workspace Marketplace में वेबहुक पब्लिश नहीं किए जा सकते.
इस डायग्राम में, Chat से कनेक्ट किए गए वेबहुक का आर्किटेक्चर दिखाया गया है:
ऊपर दिए गए डायग्राम में, Chat ऐप्लिकेशन में जानकारी का यह फ़्लो होता है:
- 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
- आपके पास Business या Enterprise वर्शन वाला Google Workspace खाता होना चाहिए. साथ ही, आपके पास Google Chat को ऐक्सेस करने की अनुमति होनी चाहिए. आपके Google Workspace संगठन को उपयोगकर्ताओं को इनकमिंग वेबहुक जोड़ने और इस्तेमाल करने की अनुमति देनी होगी.
- Node.js 14 या इसके बाद का वर्शन
- npm पैकेज मैनेजमेंट टूल
- Google 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
डालें.सेव करें पर क्लिक करें.
वेबबुक का यूआरएल कॉपी करने के लिए,
ज़्यादा पर क्लिक करें. इसके बाद, लिंक कॉपी करें पर क्लिक करें.
वेबहुक स्क्रिप्ट लिखना
वेबहुक स्क्रिप्ट का यह उदाहरण, उस स्पेस में एक मैसेज भेजता है जिसमें वेबहुक रजिस्टर किया गया है. इसके लिए, वह वेबहुक के यूआरएल पर 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
फ़ील्ड भरे जाते हैं. - वेबहुक,
spaces.messages.create
के लिए हर स्पेस के हिसाब से तय किए गए कोटे के मुताबिक काम करते हैं: हर सेकंड में एक अनुरोध. यह अनुरोध, स्पेस में मौजूद सभी वेबहुक के साथ शेयर किया जाता है. Chat, एक ही स्पेस में हर सेकंड में एक से ज़्यादा क्वेरी वाले वेबुक अनुरोधों को भी अस्वीकार कर सकता है. Chat API के कोटा के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं देखें.