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

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

इंटरैक्शन इवेंट पाने के लिए अपने Chat ऐप्लिकेशन को कॉन्फ़िगर करें. इसके लिए, अपने Chat ऐप्लिकेशन से होने वाले इंटरैक्शन पाना और उनका जवाब देना देखें.

इंटरैक्शन इवेंट के लिए फ़ॉर्मैट

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

  • मैसेज: कोई उपयोगकर्ता आपके Chat ऐप्लिकेशन को मैसेज भेजता है या स्पेस में आपके Chat ऐप्लिकेशन को शुरू करता है.
  • स्पेस में जोड़ा गया: कोई उपयोगकर्ता आपके चैट ऐप्लिकेशन को स्पेस में जोड़ता है.
  • स्पेस से हटाया गया: कोई उपयोगकर्ता किसी स्पेस से आपके चैट ऐप्लिकेशन को हटाता है.
  • कार्ड पर क्लिक किया गया: उपयोगकर्ता आपके Chat ऐप्लिकेशन से भेजे गए इंटरैक्टिव कार्ड या डायलॉग पर क्लिक करता है.

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

किसी इंटरैक्शन इवेंट के फ़ील्ड के बारे में ज़्यादा जानने के लिए, Google Chat API का Event रेफ़रंस दस्तावेज़ देखें.

सामान्य फ़ील्ड

ये फ़ील्ड हमेशा किसी इंटरैक्शन इवेंट के पेलोड में उपलब्ध कराए जाते हैं:

फ़ील्ड ब्यौरा
type Chat ऐप्लिकेशन को मिलने वाले इवेंट का टाइप, जैसे कि MESSAGE या ADDED_TO_SPACE.
eventTime टाइमस्टैंप से पता चलता है कि इवेंट को कब भेजा गया था.
common इसमें उपयोगकर्ता के क्लाइंट के बारे में जानकारी दिखती है, जैसे कि जगह या प्लैटफ़ॉर्म.

इंटरैक्शन इवेंट टाइप के हिसाब से फ़ील्ड

इवेंट टाइप के आधार पर, पेलोड में यहां दिए गए दूसरे फ़ील्ड शामिल हो सकते हैं:

फ़ील्ड ब्यौरा इवेंट का टाइप
message इवेंट से जुड़ा मैसेज. MESSAGE, ADDED_TO_SPACE, CARD_CLICKED.
space इवेंट से जुड़ा स्पेस. MESSAGE, ADDED_TO_SPACE, REMOVED_FROM_SPACE, CARD_CLICKED.
user इवेंट से जुड़ा उपयोगकर्ता. उपयोगकर्ता हमेशा एक व्यक्ति होता है, न कि चैट ऐप्लिकेशन. MESSAGE, ADDED_TO_SPACE, REMOVED_FROM_SPACE, CARD_CLICKED.
action वह फ़ंक्शन जिसे उपयोगकर्ता किसी इंटरैक्टिव कार्ड या डायलॉग पर क्लिक करने के बाद ट्रिगर करता है. CARD_CLICKED.

इवेंट पेलोड का उदाहरण

इस सेक्शन में बताया गया है कि इंटरैक्शन इवेंट किस वजह से ट्रिगर होता है. साथ ही, यहां दिए गए हर इवेंट टाइप के लिए JSON पेलोड का उदाहरण भी दिया जाता है:

मैसेज

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

  • डायरेक्ट मैसेज (DM) स्पेस में Chat ऐप्लिकेशन से भेजा गया कोई भी मैसेज.
  • कई लोगों वाले स्पेस में कोई ऐसा मैसेज दिखाता है जिसमें कोई व्यक्ति, Chat ऐप्लिकेशन का @नाम टैग करता है या किसी स्लैश कमांड का इस्तेमाल करता है.
  • अगर आपने अपने Chat ऐप्लिकेशन के लिए लिंक की झलक कॉन्फ़िगर की हैं, तो कोई उपयोगकर्ता एक मैसेज पोस्ट करता है. इस मैसेज में, कॉन्फ़िगर किए गए यूआरएल पैटर्न से मिलता-जुलता लिंक होता है.

JSON के इस उदाहरण में, MESSAGE इंटरैक्शन इवेंट दिखाया गया है. इसमें कोई उपयोगकर्ता, कई लोगों वाले स्पेस में मौजूद किसी Chat ऐप्लिकेशन का नाम टैग करता है:

{
  "type": "MESSAGE",
  "eventTime": {
      "seconds": 1691187414,
      "nanos": 93489000
  },
  "space": {
    "name": "spaces/AAAAAAAAAAA",
    "displayName": "Customer Support Superstars",
    "spaceType": "SPACE"
  },
  "message": {
    "name": "spaces/AAAAAAAAAAA/messages/CCCCCCCCCCC",
    "sender": {
      "name": "users/12345678901234567890",
      "displayName": "Izumi",
      "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
      "email": "izumi@example.com"
    },
    "createTime": {
      "seconds": 1691187386,
      "nanos": 954319000
    },
    "text": "@TestBot Create ticket.",
    "argumentText": " Create ticket.",
    "thread": {
      "name": "spaces/AAAAAAAAAAA/threads/BBBBBBBBBBB",
      "threadKey": "custom-thread-ID"
    },
    "annotations": [
      {
        "length": 8,
        "startIndex": 0,
        "userMention": {
          "type": "MENTION",
          "user": {
            "avatarUrl": "https://.../avatar.png",
            "displayName": "TestBot",
            "name": "users/1234567890987654321",
            "type": "BOT"
          }
        },
        "type": "USER_MENTION"
      }
    ],
    "attachment": [
      {
        "name": "spaces/5o6pDgAAAAE/messages/Ohu1LlUVcS8.Ohu1LlUVcS8/attachments/AATUf-Iz7d8kySEdRRZd-dznqBk3",
        "content_name": "solar.png",
        "content_type": "image/png",
        "drive_data_ref": {
          "drive_file_id": "H1HqaqRuH2Pfd_TOa1fF2_ltwDlV_yKRrr"
        },
        "source": "DRIVE_FILE"
      }
    ]
  },
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Izumi",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "izumi@example.com"
  }
}

स्पेस में जोड़ा गया

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

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

{
  "type": "ADDED_TO_SPACE",
  "eventTime": {
    "seconds": 1691187414,
    "nanos": 93489000
  },
  "space": {
    "name": "spaces/AAAAAAAAAAA",
    "displayName": "Customer Support Superstars",
    "spaceType": "SPACE",
    "adminInstalled": "false"
  },
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Izumi",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "izumi@example.com"
  }
}

Google Workspace एडमिन ने इंस्टॉल किया है

ADDED_TO_SPACE इंटरैक्शन इवेंट से यह भी पता चल सकता है कि Google Workspace एडमिन ने अपने संगठन के किसी उपयोगकर्ता के लिए Chat ऐप्लिकेशन इंस्टॉल किया है.

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

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

{
  "type": "ADDED_TO_SPACE",
  "eventTime": {
    "seconds": 1691187414,
    "nanos": 93489000
  },
  "space": {
    "name": "spaces/AAAAAAAAAAA",
    "displayName": "Customer Support Superstars",
    "spaceType": "DIRECT_MESSAGE",
    "adminInstalled": "true"
  },
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Izumi",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "izumi@example.com"
  }
}

स्पेस से हटाया गया

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

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

{
  "type": "REMOVED_FROM_SPACE",
  "eventTime": {
    "seconds": 1691187414,
    "nanos": 93489000
  },
  "space": {
    "name": "spaces/AAAAAAAAAAA",
    "spaceType": "SPACE",
    "adminInstalled": "false"
  },
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Izumi",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "izumi@example.com"
  }
}

Google Workspace एडमिन ने इसे अनइंस्टॉल कर दिया है

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

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

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

{
  "type": "REMOVED_FROM_SPACE",
  "eventTime": {
    "seconds": 1691187414,
    "nanos": 93489000
  },
  "space": {
    "name": "spaces/AAAAAAAAAAA",
    "spaceType": "DIRECT_MESSAGE",
    "adminInstalled": "true"
  },
  "user": {
    "name": "users/12345678901234567890",
    "displayName": "Izumi",
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "email": "izumi@example.com"
  }
}

कार्ड पर क्लिक किया गया

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

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

  • लोग, कार्ड पर मौजूद Send feedback बटन पर क्लिक करते हैं. इस पर क्लिक करने से, एक डायलॉग बॉक्स खुलता है. इस डायलॉग बॉक्स में, उपयोगकर्ता जानकारी डाल सकता है.
  • उपयोगकर्ता किसी कार्ड या डायलॉग में जानकारी डालने के बाद, Submit बटन पर क्लिक करता है.

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

{
  "type": "CARD_CLICKED",
  "eventTime": {
    "seconds": 1691187414,
    "nanos": 93489000
  },
  "common": {
    "userLocale": "en",
    "hostApp": "CHAT",
    "invokedFunction": "doAssignTicket",
    "timeZone": {
      "offset": -25200000,
      "id": "America/Los_Angeles"
    }
  },
  "action": {
    "actionMethodName": "doAssignTicket"
  },
  "message": {
    "cards": [
      {
        "header": {
          "title": "Incoming support ticket."
        },
        "sections": [
          {
            "widgets": [
              {
                "textParagraph": {
                  "text": "Incoming support ticket #12345 is unassigned and needs your attention."
                }
              },
              {
                "buttons": [
                  {
                    "textButton": {
                      "onClick": {
                        "action": {
                          "actionMethodName": "doAssignTicket"
                        }
                      },
                      "text": "Assign to me"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "sender": {
      "avatarUrl": "https://www.example.com/images/chat-app-icon.png",
      "displayName": "Support Chat app",
      "name": "users/98765432109876543210",
      "type": "BOT"
    },
    "createTime": {
      "seconds": 1691187386,
      "nanos": 954319000
    },
    "retentionSettings": {
      "state": "PERMANENT"
    },
    "name": "spaces/AAAAAAAAAAA/messages/CCCCCCCCCCC",
    "thread": {
      "retentionSettings": {
        "state": "PERMANENT"
      },
      "name": "spaces/AAAAAAAAAAA/threads/BBBBBBBBBBB"
    },
    "messageHistoryState": "HISTORY_ON",
    "space": {
      "spaceThreadingState": "GROUPED_MESSAGES",
      "spaceType": "SPACE",
      "displayName": "Customer Support Superstars",
      "name": "spaces/AAAAAAAAAAA",
      "spaceHistoryState": "HISTORY_ON",
      "type": "ROOM",
      "threaded": true
    }
  },
  "user": {
    "avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
    "displayName": "Izumi",
    "name": "users/12345678901234567890",
    "type": "HUMAN",
    "email": "izumi@example.com",
    "domainId": "ABCDEFG"
  },
  "space": {
    "spaceThreadingState": "GROUPED_MESSAGES",
    "spaceType": "SPACE",
    "displayName": "Customer Support Superstars",
    "name": "spaces/AAAAAAAAAAA",
    "spaceHistoryState": "HISTORY_ON",
    "type": "ROOM",
    "threaded": true
  }
}

डायलॉग बॉक्स के लिए कार्ड पर किए गए क्लिक की संख्या

जब कोई उपयोगकर्ता किसी डायलॉग के साथ इंटरैक्ट करता है, तो CARD_CLICKED इंटरैक्शन इवेंट के पेलोड में ये अतिरिक्त फ़ील्ड शामिल होते हैं:

  • isDialogEvent: डायलॉग वाले इंटरैक्शन वाले इवेंट के लिए, true पर सेट करें.
  • DialogEventType: डायलॉग के साथ किस तरह का इंटरैक्शन होता है. इसमें यह जानकारी भी शामिल होती है कि उपयोगकर्ता ने डायलॉग बॉक्स को खोला, सबमिट किया या रद्द किया.

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

{
  "type": "CARD_CLICKED",
  ...
  "isDialogEvent": true,
  "dialogEventType": "SUBMIT_DIALOG",
}

इंटरैक्शन इवेंट के पेलोड को प्रोसेस करने और रिस्पॉन्स देने का तरीका जानने के लिए, ये गाइड देखें: