Google Chat অ্যাপ ইন্টারঅ্যাকশন ইভেন্টের ধরন

আপনার Google Chat অ্যাপ Google Chat থেকে কী ধরনের ইন্টারঅ্যাকশন ইভেন্ট পেতে পারে তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।

ইন্টারঅ্যাকশন ইভেন্টগুলি পেতে আপনার চ্যাট অ্যাপটি কনফিগার করতে, আপনার চ্যাট অ্যাপের সাথে ইন্টারঅ্যাকশনগুলি গ্রহণ এবং প্রতিক্রিয়া দেখুন।

মিথস্ক্রিয়া ইভেন্টের জন্য বিন্যাস

ব্যবহারকারীরা বিভিন্ন উপায়ে চ্যাট অ্যাপের সাথে যোগাযোগ করতে পারে। প্রতিটি ধরনের ইন্টারঅ্যাকশনের জন্য, Google Chat একটি ভিন্ন ধরনের ইন্টারঅ্যাকশন ইভেন্ট পাঠায়:

  • বার্তা: একজন ব্যবহারকারী আপনার চ্যাট অ্যাপকে একটি বার্তা পাঠান, বা একটি স্পেসে আপনার চ্যাট অ্যাপটি আহ্বান করেন।
  • স্পেসে যোগ করা হয়েছে: একজন ব্যবহারকারী আপনার চ্যাট অ্যাপকে একটি স্পেসে যোগ করে।
  • স্থান থেকে সরানো হয়েছে: একজন ব্যবহারকারী একটি স্থান থেকে আপনার চ্যাট অ্যাপটি সরিয়ে দেয়।
  • কার্ডে ক্লিক করা: একজন ব্যবহারকারী আপনার চ্যাট অ্যাপের পাঠানো একটি ইন্টারেক্টিভ কার্ড বা ডায়ালগে ক্লিক করেন।
  • অ্যাপ হোম মেসেজ : একজন ব্যবহারকারী একটি চ্যাট অ্যাপের মাধ্যমে একটি সরাসরি বার্তা খোলে এবং তারা একটি চ্যাট অ্যাপ হোম মেসেজ পায়।
  • ফর্ম জমা দিন : একজন ব্যবহারকারী চ্যাট অ্যাপ হোম মেসেজের মাধ্যমে ফর্মের তথ্য জমা দেন

প্রতিবার যখন একজন ব্যবহারকারী আপনার চ্যাট অ্যাপের সাথে ইন্টারঅ্যাকশন করে, Google চ্যাট একটি রিকোয়েস্ট বডি সহ একটি ইন্টারঅ্যাকশন ইভেন্ট পাঠায়, যা একটি JSON পেলোড যা ইন্টারঅ্যাকশনের প্রতিনিধিত্ব করে। এই ইভেন্ট পেলোডে এমন উপাদান রয়েছে যা সব ধরনের মিথস্ক্রিয়া ইভেন্টের জন্য সাধারণ, সেইসাথে ইভেন্টের প্রকারের জন্য নির্দিষ্ট উপাদান রয়েছে।

একটি মিথস্ক্রিয়া ইভেন্টের ক্ষেত্রগুলি সম্পর্কে আরও জানতে, Google Chat API এর Event রেফারেন্স ডকুমেন্টেশন দেখুন।

সাধারণ ক্ষেত্র

নিম্নলিখিত ক্ষেত্রগুলি সর্বদা একটি মিথস্ক্রিয়া ইভেন্টের পেলোডে সরবরাহ করা হয়:

মাঠ বর্ণনা
type চ্যাট অ্যাপ যে ইভেন্টটি পাচ্ছে, যেমন 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 পেলোড প্রদান করে:

বার্তা

এই মিথস্ক্রিয়া ইভেন্টটি প্রতিনিধিত্ব করে যখন একজন ব্যক্তি চ্যাট অ্যাপে একটি বার্তা পাঠান, যেমন:

  • চ্যাট অ্যাপের মাধ্যমে সরাসরি বার্তা (DM) স্পেসে যেকোনো বার্তা।
  • মাল্টি-পারসন স্পেসে একটি মেসেজ যেখানে একজন ব্যক্তি চ্যাট অ্যাপটির @উল্লেখ করেন বা এর একটি স্ল্যাশ কমান্ড ব্যবহার করেন।
  • আপনি যদি আপনার চ্যাট অ্যাপের জন্য লিঙ্ক প্রিভিউ কনফিগার করে থাকেন, তাহলে একজন ব্যবহারকারী একটি বার্তা পোস্ট করেন যাতে একটি লিঙ্ক থাকে যা কনফিগার করা URL প্যাটার্নের সাথে মেলে।

নিম্নলিখিত JSON উদাহরণটি একটি MESSAGE ইন্টারঅ্যাকশন ইভেন্ট দেখায় যেখানে একজন ব্যবহারকারী একাধিক লোকের সাথে একটি স্পেসে একটি চ্যাট অ্যাপ উল্লেখ করেছেন:

{
  "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 উদাহরণটি একটি 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 অ্যাপ সম্পর্কে জানতে, Google Workspace অ্যাডমিন হেল্পের ডকুমেন্টেশন দেখুন, আপনার ডোমেনে মার্কেটপ্লেস অ্যাপ ইনস্টল করুন

নিম্নলিখিত JSON উদাহরণটি একটি ADDED_TO_SPACE ইন্টারঅ্যাকশন ইভেন্টের অনুরোধের বডি দেখায় যখন একজন Google Workspace অ্যাডমিনিস্ট্রেটর একজন ব্যবহারকারীর জন্য একটি 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"
  }
}

স্থান থেকে সরানো হয়েছে

এই ইন্টারঅ্যাকশন ইভেন্টটি নির্দেশ করে যে আপনার চ্যাট অ্যাপ একটি স্পেস থেকে সরানো হয়েছে। চ্যাট অ্যাপগুলি এই ইভেন্টে বার্তাগুলির সাথে সাড়া দেয় না, কারণ সেগুলি ইতিমধ্যেই সরানো হয়েছে৷

নিম্নলিখিত 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 অ্যাপ আনইনস্টল করেছেন। আনইনস্টল করা হলে, চ্যাট অ্যাপটি আর ব্যবহারকারীর সরাসরি বার্তা প্যানেলে প্রদর্শিত হবে না।

যদি কোনো ব্যবহারকারী অ্যাডমিনিস্ট্রেটরের আগে আপনার চ্যাট অ্যাপ ইনস্টল করে থাকেন, তাহলে চ্যাট অ্যাপটি ব্যবহারকারীর জন্য ইনস্টল থাকবে। এই ক্ষেত্রে, যেহেতু চ্যাট অ্যাপটি এখনও ইনস্টল করা আছে, তাই চ্যাট অ্যাপটি কোনও REMOVED_FROM_SPACE ইন্টারঅ্যাকশন ইভেন্ট পায় না।

নিম্নলিখিত JSON উদাহরণটি একটি REMOVED_FROM_SPACE ইন্টারঅ্যাকশন ইভেন্টের অনুরোধের বডি দেখায় যখন একজন Google Workspace অ্যাডমিনিস্ট্রেটর কোনও ব্যবহারকারীর জন্য 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"
  }
}

কার্ড ক্লিক করা হয়েছে

এই মিথস্ক্রিয়া ইভেন্টটি নির্দেশ করে যে একজন ব্যবহারকারী একটি কার্ড বার্তা বা ডায়ালগে একটি বোতামে ক্লিক করেছেন৷

একটি ইন্টারঅ্যাকশন ইভেন্ট পেতে, বোতামটি অবশ্যই চ্যাট অ্যাপের সাথে অন্য ইন্টারঅ্যাকশন ট্রিগার করবে। উদাহরণস্বরূপ, একটি চ্যাট অ্যাপ একটি 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",
}

অ্যাপ হোম মেসেজ

এই ইন্টারঅ্যাকশন ইভেন্টটি নির্দেশ করে যে একজন ব্যবহারকারী আপনার চ্যাট অ্যাপের মাধ্যমে একটি সরাসরি বার্তা খুলেছেন এবং একটি চ্যাট অ্যাপ হোম মেসেজ পেয়েছেন।

নিম্নলিখিত JSON উদাহরণটি একটি APP_HOME ইন্টারঅ্যাকশন ইভেন্টের জন্য অনুরোধের অংশ দেখায়:

{
  "chat": {
    "type": "APP_HOME",
    "user": {
      "name": "users/12345678901234567890",
      "type": "HUMAN",
      "email": "izumi@example.com",
      "domainId": "ABCDEFG"
    },
    "space": {
      "name": "spaces/AAAAAAAAAAA",
      "singleUserBotDm": true,
      "spaceType": "DIRECT_MESSAGE"
    }
  },
  "commonEventObject": {
    "invokedFunction": "onAppHome",
    "userLocale": "en",
    "hostApp": "CHAT"
  }
}

একটি অ্যাপ হোম মেসেজে ফর্ম জমা দিন

এই ইন্টারঅ্যাকশন ইভেন্টটি নির্দেশ করে যে একজন ব্যবহারকারী একটি চ্যাট অ্যাপ হোম মেসেজের মাধ্যমে ফর্ম তথ্য জমা দিয়েছেন।

নিম্নলিখিত JSON উদাহরণটি একটি SUBMIT_FORM ইন্টারঅ্যাকশন ইভেন্টের জন্য অনুরোধের অংশ দেখায়:

{
  "commonEventObject": {
    "userLocale": "en",
    "invokedFunction": "onSubmitFunction",
    "formInputs": {
      "username": {
        "": {
          "stringInputs": {
            "value": [
              "Ira"
            ]
          }
        }
      }
    },
    "hostApp": "CHAT"
  },
  "chat": {
    "type": "SUBMIT_FORM",
    "space": {
      "name": "spaces/AAAAAAAAAAA",
      "spaceType": "DIRECT_MESSAGE",
      "singleUserBotDm": true
    },
    "user": {
      "type": "HUMAN",
      "name": "123456789"
    }
  }
}

মিথস্ক্রিয়া ইভেন্টগুলির পেলোডগুলি কীভাবে প্রক্রিয়া করতে হয় এবং একটি প্রতিক্রিয়া ফেরত দিতে হয় তা শিখতে, নিম্নলিখিত নির্দেশিকাগুলি দেখুন: