इंटरैक्शन इवेंट पाना और उनका जवाब देना

इस पेज पर बताया गया है कि आपका Google Chat ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन को कैसे पा सकता है और उनका जवाब कैसे दे सकता है. इन्हें Google Chat ऐप्लिकेशन के इंटरैक्शन इवेंट भी कहा जाता है.

इस पेज पर, इन कामों को करने का तरीका बताया गया है:

  • इंटरैक्शन इवेंट पाने के लिए, Chat ऐप्लिकेशन को कॉन्फ़िगर करें.
  • अपने इंफ़्रास्ट्रक्चर पर इंटरैक्शन इवेंट को प्रोसेस करें.
  • अगर ज़रूरी हो, तो इंटरैक्शन इवेंट का जवाब दें.

ज़रूरी शर्तें

इंटरैक्शन इवेंट के टाइप

Google Chat ऐप्लिकेशन के साथ इंटरैक्ट करने वाले इवेंट से पता चलता है कि किसी उपयोगकर्ता ने Chat ऐप्लिकेशन को शुरू करने या उसके साथ इंटरैक्ट करने के लिए कौनसी कार्रवाई की है. जैसे, किसी Chat ऐप्लिकेशन को @mention करना या उसे किसी स्पेस में जोड़ना.

जब उपयोगकर्ता किसी Chat ऐप्लिकेशन से इंटरैक्ट करते हैं, तो Google Chat, Chat ऐप्लिकेशन को एक इंटरैक्शन इवेंट भेजता है. इसे Chat API में Event टाइप के तौर पर दिखाया जाता है. Chat ऐप्लिकेशन, इस इवेंट का इस्तेमाल इंटरैक्शन को प्रोसेस करने के लिए कर सकता है. इसके अलावा, वह चाहें, तो मैसेज का जवाब भी दे सकता है.

उपयोगकर्ता के हर इंटरैक्शन के लिए, Google Chat अलग-अलग तरह के इंटरैक्शन इवेंट भेजता है. इससे आपके Chat ऐप्लिकेशन को हर इवेंट टाइप को सही तरीके से हैंडल करने में मदद मिलती है. इंटरैक्शन इवेंट के टाइप को eventType ऑब्जेक्ट का इस्तेमाल करके दिखाया जाता है.

उदाहरण के लिए, Google Chat, ADDED_TO_SPACE इवेंट टाइप का इस्तेमाल करता है. इससे यह पता चलता है कि उपयोगकर्ता ने किसी स्पेस में Chat ऐप्लिकेशन को जोड़ा है. इससे Chat ऐप्लिकेशन, स्पेस में तुरंत वेलकम मैसेज भेज सकता है.

Chat ऐप्लिकेशन, वेलकम मैसेज पोस्ट करता है.
पहली इमेज: जब कोई उपयोगकर्ता किसी स्पेस में Chat ऐप्लिकेशन जोड़ता है, तो Chat ऐप्लिकेशन को ADDED_TO_SPACE इंटरैक्शन इवेंट मिलता है. Chat ऐप्लिकेशन, इस इवेंट को मैनेज करता है, ताकि स्पेस में स्वागत मैसेज भेजा जा सके.

नीचे दी गई टेबल में, उपयोगकर्ता की सामान्य कार्रवाइयां, चैट ऐप्लिकेशन को मिलने वाले इंटरैक्शन इवेंट का टाइप, और चैट ऐप्लिकेशन के सामान्य जवाब देने के तरीके के बारे में बताया गया है:

उपयोगकर्ता इंटरैक्शन eventType Chat ऐप्लिकेशन से मिलने वाला सामान्य जवाब
कोई उपयोगकर्ता, Chat ऐप्लिकेशन को मैसेज भेजता है. उदाहरण के लिए, Chat ऐप्लिकेशन को @mention करता है या स्लैश कमांड का इस्तेमाल करता है. MESSAGE Chat ऐप्लिकेशन, मैसेज के कॉन्टेंट के आधार पर जवाब देता है. उदाहरण के लिए, Chat ऐप्लिकेशन, स्लैश कमांड /about का जवाब इस मैसेज के साथ देता है कि Chat ऐप्लिकेशन कौन-कौनसे टास्क कर सकता है.
जब कोई उपयोगकर्ता किसी स्पेस में Chat ऐप्लिकेशन जोड़ता है. ADDED_TO_SPACE Chat ऐप्लिकेशन, ऑनबोर्डिंग मैसेज भेजता है. इसमें बताया जाता है कि यह क्या करता है और स्पेस में मौजूद लोग इससे कैसे इंटरैक्ट कर सकते हैं.
जब कोई उपयोगकर्ता किसी स्पेस से Chat ऐप्लिकेशन को हटाता है. REMOVED_FROM_SPACE Chat ऐप्लिकेशन, स्पेस के लिए कॉन्फ़िगर की गई सभी सूचनाओं को हटा देता है. जैसे, वेबहुक को मिटाना. साथ ही, यह डिवाइस की मेमोरी को भी खाली कर देता है.
जब कोई उपयोगकर्ता, Chat ऐप्लिकेशन के मैसेज, डायलॉग बॉक्स या होम पेज पर मौजूद किसी कार्ड पर मौजूद बटन पर क्लिक करता है. CARD_CLICKED Chat ऐप्लिकेशन, उपयोगकर्ता के सबमिट किए गए डेटा को प्रोसेस और सेव करता है या कोई दूसरा कार्ड दिखाता है.
कोई उपयोगकर्ता, 1:1 मैसेज में होम टैब पर क्लिक करके, Chat ऐप्लिकेशन का होम पेज खोलता है. APP_HOME Chat ऐप्लिकेशन, होम पेज से स्टैटिक या इंटरैक्टिव कार्ड दिखाता है.
जब कोई उपयोगकर्ता, Chat ऐप्लिकेशन के होम पेज से कोई फ़ॉर्म सबमिट करता है. SUBMIT_FORM Chat ऐप्लिकेशन, उपयोगकर्ता के सबमिट किए गए डेटा को प्रोसेस और सेव करता है या कोई दूसरा कार्ड दिखाता है.
इस इमेज में दिखाया गया है कि कोई उपयोगकर्ता, क्विक कमांड का इस्तेमाल करके किसी कमांड को चालू करता है. APP_COMMAND Chat ऐप्लिकेशन, दिए गए निर्देश के आधार पर जवाब देता है. उदाहरण के लिए, Chat ऐप्लिकेशन इसके बारे में जानकारी कमांड का जवाब, एक ऐसे मैसेज से देता है जिसमें उन टास्क के बारे में बताया गया होता है जिन्हें Chat ऐप्लिकेशन पूरा कर सकता है.

साथ काम करने वाले सभी इंटरैक्शन इवेंट देखने के लिए, EventType रेफ़रंस दस्तावेज़ देखें.

डायलॉग से इंटरैक्शन इवेंट

अगर आपका Chat ऐप्लिकेशन डायलॉग खोलता है, तो इंटरैक्शन इवेंट में यह अतिरिक्त जानकारी शामिल होती है. इसका इस्तेमाल जवाब को प्रोसेस करने के लिए किया जा सकता है:

  • isDialogEvent को true पर सेट किया गया है.
  • DialogEventType से पता चलता है कि इंटरैक्शन से कोई डायलॉग बॉक्स खुलेगा, डायलॉग बॉक्स से जानकारी सबमिट होगी या डायलॉग बॉक्स बंद होगा.

नीचे दी गई टेबल में, डायलॉग के साथ होने वाली सामान्य कार्रवाइयां, उनसे जुड़े डायलॉग इवेंट टाइप, और Chat ऐप्लिकेशन के सामान्य तौर पर जवाब देने के तरीके के बारे में बताया गया है:

डायलॉग के साथ उपयोगकर्ता का इंटरैक्शन डायलॉग इवेंट का टाइप सामान्य जवाब
जब कोई उपयोगकर्ता डायलॉग का अनुरोध करता है. उदाहरण के लिए, वे स्लैश कमांड का इस्तेमाल करते हैं या मैसेज में मौजूद किसी बटन पर क्लिक करते हैं. REQUEST_DIALOG Chat ऐप्लिकेशन, डायलॉग बॉक्स खोलता है.
जब कोई उपयोगकर्ता, डायलॉग में मौजूद किसी बटन पर क्लिक करके जानकारी सबमिट करता है. SUBMIT_DIALOG Chat ऐप्लिकेशन, इंटरैक्शन पूरा करने के लिए किसी दूसरे डायलॉग पर जाता है या डायलॉग बंद कर देता है.
जब कोई उपयोगकर्ता जानकारी सबमिट करने से पहले, डायलॉग से बाहर निकल जाता है या उसे बंद कर देता है. CANCEL_DIALOG इसके अलावा, Chat ऐप्लिकेशन एक नया मैसेज भेजकर जवाब दे सकता है. यह उस मैसेज या कार्ड को भी अपडेट कर सकता है जिससे उपयोगकर्ता ने डायलॉग खोला था.

ज़्यादा जानकारी के लिए, इंटरैक्टिव डायलॉग बॉक्स खोलना लेख पढ़ें.

Chat ऐप्लिकेशन के इंटरैक्शन इवेंट पाना

इस सेक्शन में बताया गया है कि Chat ऐप्लिकेशन के लिए इंटरैक्शन इवेंट कैसे पाएं और उन्हें प्रोसेस करें.

इंटरैक्शन इवेंट पाने के लिए, Chat ऐप्लिकेशन को कॉन्फ़िगर करना

सभी Chat ऐप्लिकेशन इंटरैक्टिव नहीं होते. उदाहरण के लिए, इनकमिंग वेबहुक सिर्फ़ आउटगोइंग मैसेज भेज सकते हैं और उपयोगकर्ताओं को जवाब नहीं दे सकते. अगर आपको इंटरैक्टिव चैट ऐप्लिकेशन बनाना है, तो आपको ऐसा एंडपॉइंट चुनना होगा जो आपके चैट ऐप्लिकेशन को इंटरैक्शन इवेंट पाने, उन्हें प्रोसेस करने, और उनका जवाब देने की सुविधा देता हो. Chat ऐप्लिकेशन को डिज़ाइन करने के बारे में ज़्यादा जानने के लिए, Chat ऐप्लिकेशन को लागू करने के आर्किटेक्चर देखें.

आपको जिन इंटरैक्टिव सुविधाओं को बनाना है उनके लिए, आपको Chat API में अपना कॉन्फ़िगरेशन अपडेट करना होगा. इससे Google Chat, आपके Chat ऐप्लिकेशन को इंटरैक्शन से जुड़े इवेंट भेज पाएगा:

  1. Google Cloud Console में, Chat API पेज पर जाएं और कॉन्फ़िगरेशन पेज पर क्लिक करें:

    Chat API कॉन्फ़िगरेशन पेज पर जाएं

  2. इंटरैक्टिव सुविधाएं में जाकर, सेटिंग देखें और उन सुविधाओं के हिसाब से अपडेट करें जिन्हें आपको बनाना है:

    फ़ील्ड ब्यौरा
    फ़ंक्शन ज़रूरी है. फ़ील्ड का एक ऐसा सेट जो यह तय करता है कि Chat ऐप्लिकेशन, उपयोगकर्ताओं के साथ कैसे इंटरैक्ट कर सकता है. डिफ़ॉल्ट रूप से, उपयोगकर्ता Google Chat में सीधे तौर पर Chat ऐप्लिकेशन को ढूंढ सकते हैं और उसे मैसेज भेज सकते हैं.
    • स्पेस और ग्रुप बातचीत में शामिल होना: उपयोगकर्ता, Chat ऐप्लिकेशन को स्पेस और ग्रुप बातचीत में जोड़ सकते हैं.
    कनेक्शन सेटिंग ज़रूरी है. Chat ऐप्लिकेशन का एंडपॉइंट, जो इनमें से कोई एक है:
    • एचटीटीपी एंडपॉइंट यूआरएल: यह एक एचटीटीपीएस एंडपॉइंट होता है, जो Chat ऐप्लिकेशन को लागू करने की सुविधा होस्ट करता है.
    • Apps Script: यह Apps Script प्रोजेक्ट के लिए डिप्लॉयमेंट आईडी होता है. यह Chat ऐप्लिकेशन लागू करता है.
    • Cloud Pub/Sub टॉपिक का नाम: यह एक ऐसा Pub/Sub टॉपिक होता है जिसकी सदस्यता Chat ऐप्लिकेशन, एंडपॉइंट के तौर पर लेता है.
    • Dialogflow: Chat ऐप्लिकेशन को Dialogflow इंटिग्रेशन के साथ रजिस्टर करता है. ज़्यादा जानकारी के लिए, नैचुरल लैंग्वेज को समझने वाला Dialogflow Google Chat ऐप्लिकेशन बनाना लेख पढ़ें.
    निर्देश ज़रूरी नहीं. Chat ऐप्लिकेशन के लिए स्लैश कमांड और क्विक कमांड. कमांड की मदद से, उपयोगकर्ता कोई कार्रवाई करने का अनुरोध कर सकते हैं या Chat ऐप्लिकेशन की किसी खास सुविधा का इस्तेमाल कर सकते हैं. ज़्यादा जानकारी के लिए, Google Chat ऐप्लिकेशन की कमांड का जवाब देना लेख पढ़ें.
    लिंक की झलक ज़रूरी नहीं. ये ऐसे यूआरएल पैटर्न होते हैं जिन्हें Chat ऐप्लिकेशन पहचानता है. साथ ही, जब लोग लिंक भेजते हैं, तो यह उनके लिए अतिरिक्त कॉन्टेंट उपलब्ध कराता है. ज़्यादा जानकारी के लिए, लिंक की झलक देखना लेख पढ़ें.
    किसको दिखे ज़रूरी नहीं. ज़्यादा से ज़्यादा पांच लोग या एक या उससे ज़्यादा Google ग्रुप, जो आपके Chat ऐप्लिकेशन को देख और इंस्टॉल कर सकते हैं. इस फ़ील्ड का इस्तेमाल, Chat ऐप्लिकेशन की जांच करने या उसे अपनी टीम के साथ शेयर करने के लिए करें. ज़्यादा जानकारी के लिए, इंटरैक्टिव सुविधाओं को टेस्ट करना लेख पढ़ें.
  3. सेव करें पर क्लिक करें. Chat ऐप्लिकेशन का कॉन्फ़िगरेशन सेव करने पर, यह आपके Google Workspace संगठन के उन उपयोगकर्ताओं के लिए उपलब्ध हो जाता है जिन्हें आपने चुना है.

अब आपका Chat ऐप्लिकेशन, Google Chat से इंटरैक्शन इवेंट पाने के लिए कॉन्फ़िगर हो गया है.

आपकी सेवा के लिए, एचटीटीपी कॉल फिर से करने की कोशिशों को मैनेज करना

अगर आपकी सेवा के लिए किया गया एचटीटीपीएस अनुरोध पूरा नहीं होता है (जैसे कि टाइम आउट, कुछ समय के लिए नेटवर्क काम न करना या 2xx के अलावा कोई और एचटीटीपीएस स्टेटस कोड), तो Google Chat कुछ मिनटों के अंदर, डिलीवरी को कुछ बार फिर से आज़मा सकता है. हालांकि, इसकी कोई गारंटी नहीं है. इस वजह से, कुछ स्थितियों में Chat ऐप्लिकेशन को एक ही मैसेज कई बार मिल सकता है. अगर अनुरोध पूरा हो जाता है, लेकिन अमान्य मैसेज पेलोड दिखाता है, तो Google Chat अनुरोध को फिर से नहीं भेजता.

इंटरैक्शन इवेंट को प्रोसेस करना या उनका जवाब देना

इस सेक्शन में बताया गया है कि Google Chat ऐप्लिकेशन, इंटरैक्शन इवेंट को कैसे प्रोसेस कर सकते हैं और उनका जवाब कैसे दे सकते हैं.

Google Chat से इंटरैक्शन इवेंट मिलने के बाद, आपका Chat ऐप्लिकेशन कई तरह से जवाब दे सकता है. ज़्यादातर मामलों में, इंटरैक्टिव चैट ऐप्लिकेशन, उपयोगकर्ता को मैसेज के ज़रिए जवाब देते हैं. Google Chat ऐप्लिकेशन, डेटा सोर्स से कुछ जानकारी भी खोज सकता है. साथ ही, इंटरैक्शन इवेंट की जानकारी या कोई भी अन्य जानकारी रिकॉर्ड कर सकता है. प्रोसेसिंग का यह तरीका, Google Chat ऐप्लिकेशन की पहचान है.

सिंक्रोनस तरीके से जवाब देने के लिए, Chat ऐप्लिकेशन को 30 सेकंड के अंदर जवाब देना होगा. साथ ही, जवाब को उस स्पेस में पोस्ट करना होगा जहां इंटरैक्शन हुआ था. ऐसा न करने पर, Chat ऐप्लिकेशन एसिंक्रोनस तरीके से जवाब दे सकता है.

हर इंटरैक्शन इवेंट के लिए, चैट ऐप्लिकेशन को अनुरोध का मुख्य हिस्सा मिलता है. यह JSON पेलोड होता है, जो इवेंट को दिखाता है. जवाब को प्रोसेस करने के लिए, इस जानकारी का इस्तेमाल किया जा सकता है. इवेंट पेलोड के उदाहरणों के लिए, Chat ऐप्लिकेशन के इंटरैक्शन इवेंट के टाइप देखें.

इस डायग्राम में दिखाया गया है कि Google Chat ऐप्लिकेशन, आम तौर पर अलग-अलग तरह के इंटरैक्शन इवेंट को कैसे प्रोसेस करता है या उनका जवाब कैसे देता है:

Google Chat ऐप्लिकेशन, इंटरैक्शन इवेंट को कैसे प्रोसेस करते हैं, इसका आर्किटेक्चर.

रीयल टाइम में जवाब दिखाएँ

इंटरैक्शन इवेंट की मदद से, चैट ऐप्लिकेशन रीयल टाइम में या सिंक्रोनस तरीके से जवाब दे सकते हैं. सिंक्रोनस जवाबों के लिए, पुष्टि करने की ज़रूरत नहीं होती.

रीयल टाइम में जवाब देने के लिए, Chat ऐप्लिकेशन को Message ऑब्जेक्ट दिखाना होगा. स्पेस में मैसेज का जवाब देने के लिए, Message ऑब्जेक्ट में text, cardsV2, और accessoryWidgets ऑब्जेक्ट शामिल हो सकते हैं. अन्य तरह के जवाबों के साथ इसका इस्तेमाल करने के लिए, ये गाइड देखें:

जवाब के तौर पर मैसेज भेजें

इस उदाहरण में, Chat ऐप्लिकेशन को किसी स्पेस में जोड़े जाने पर, यह एक टेक्स्ट मैसेज बनाता है और उसे भेजता है. उपयोगकर्ताओं को शामिल करने के सबसे सही तरीकों के बारे में जानने के लिए, उपयोगकर्ताओं को अपने Chat ऐप्लिकेशन के बारे में जानकारी देना लेख पढ़ें.

जब कोई उपयोगकर्ता आपके Chat ऐप्लिकेशन को किसी स्पेस में जोड़ता है, तब उसे एक मैसेज भेजा जाता है. इसके लिए, आपका Chat ऐप्लिकेशन ADDED_TO_SPACE इंटरैक्शन इवेंट का जवाब देता है. टेक्स्ट मैसेज से ADDED_TO_SPACE इंटरैक्शन इवेंट का जवाब देने के लिए, इस कोड का इस्तेमाल करें:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

Python

from flask import Flask, request, json
app = Flask(__name__)

@app.route('/', methods=['POST'])
def cymbal_app():
  """Sends an onboarding message when the Chat app is added to a space.

  Returns:
    Mapping[str, Any]: The response object from the Chat app.
  """
  event = request.get_json()
  if event['type'] == 'ADDED_TO_SPACE':
    return json.jsonify({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar' +
      'from Google Chat. Take a look at your schedule today by typing' +
      '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To' +
      'learn what else I can do, type `/help`.'
    })
  return json.jsonify({})

Java

@SpringBootApplication
@RestController
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }

  /*
   * Sends an onboarding message when the Chat app is added to a space.
   *
   * @return The response object from the Chat app.
   */
  @PostMapping("/")
  @ResponseBody
  public Message onEvent(@RequestBody JsonNode event) {
    switch (event.get("type").asText()) {
      case "ADDED_TO_SPACE":
        return new Message().setText(
          "Hi, Cymbal at your service. I help you manage your calendar" +
          "from Google Chat. Take a look at your schedule today by typing" +
          "`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`." +
          "To learn what else I can do, type `/help`.");
      default:
        return new Message();
    }
  }
}

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app.
 */
function onAddToSpace(event) {
  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

कोड सैंपल से यह मैसेज मिलता है:

ऑनबोर्डिंग मैसेज का उदाहरण.

एसिंक्रोनस तरीके से जवाब देना

कभी-कभी चैट ऐप्लिकेशन को इंटरैक्शन इवेंट का जवाब 30 सेकंड के बाद देना होता है या ऐसे टास्क पूरे करने होते हैं जो उस स्पेस से बाहर के हों जहां इंटरैक्शन इवेंट जनरेट हुआ था. उदाहरण के लिए, किसी Chat ऐप्लिकेशन को लंबे समय तक चलने वाले टास्क को पूरा करने के बाद, उपयोगकर्ता को जवाब देना पड़ सकता है. ऐसे में, Chat ऐप्लिकेशन Google Chat API को कॉल करके, एसिंक्रोनस तरीके से जवाब दे सकते हैं.

Chat API का इस्तेमाल करके मैसेज बनाने के लिए, मैसेज बनाना लेख पढ़ें. Chat API के अन्य तरीकों का इस्तेमाल करने से जुड़ी गाइड के लिए, Chat API की खास जानकारी देखें.