একটি Google Workspace সদস্যতা তৈরি করুন

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

এই পৃষ্ঠায় গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করার জন্য নিম্নলিখিত ধাপগুলো রয়েছে:

  1. আপনার পরিবেশ প্রস্তুত করুন।
  2. একটি গুগল ক্লাউড পাব/সাব টপিক তৈরি করুন এবং তাতে সাবস্ক্রাইব করুন। গুগল ওয়ার্কস্পেস ইভেন্টগুলি গ্রহণ করার জন্য এই ডকুমেন্টটিকে একটি এন্ডপয়েন্ট হিসাবে ব্যবহার করুন।
  3. Subscription রিসোর্সের উপর Google Workspace Events API-এর create মেথডটি কল করুন।
  4. আপনার Pub/Sub টপিকে আপনি সাবস্ক্রাইব করা ইভেন্টগুলো আসছে কিনা, তা যাচাই করতে আপনার Google Workspace সাবস্ক্রিপশনটি পরীক্ষা করুন।
  5. ঐচ্ছিকভাবে, আপনার অ্যাপের জন্য কোনো এন্ডপয়েন্টে ইভেন্ট পাঠানোর পদ্ধতি কনফিগার করুন, যাতে আপনার অ্যাপ ইভেন্টটি প্রসেস করতে পারে এবং প্রয়োজনে ব্যবস্থা নিতে পারে।

পূর্বশর্ত

অ্যাপস স্ক্রিপ্ট

  • এই নির্দেশিকায় Google Cloud CLI কমান্ডগুলি ব্যবহার করতে:
    1. Google Cloud CLI ইনস্টল করুন।
    2. gcloud CLI চালু করতে, নিম্নলিখিত কোডটি চালান:
    3.   gcloud init
        
  • একটি অ্যাপস স্ক্রিপ্ট প্রকল্প:
    • অ্যাপস স্ক্রিপ্ট দ্বারা স্বয়ংক্রিয়ভাবে তৈরি ডিফল্ট প্রজেক্টের পরিবর্তে আপনার গুগল ক্লাউড প্রজেক্ট ব্যবহার করুন।
    • OAuth সম্মতি স্ক্রিন কনফিগার করার জন্য আপনি যে সমস্ত স্কোপ যোগ করেছেন, সেই স্কোপগুলি আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের appsscript.json ফাইলে অবশ্যই যোগ করতে হবে। উদাহরণস্বরূপ, যদি আপনি chat.messages স্কোপটি নির্দিষ্ট করে থাকেন, তাহলে নিম্নলিখিতটি যোগ করুন:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Google Workspace Events অ্যাডভান্সড সার্ভিসটি সক্রিয় করুন

পাইথন

  • পাইথন ৩.৬ বা তার বেশি
  • পিপ প্যাকেজ ম্যানেজমেন্ট টুল
  • পাইথনের জন্য সর্বশেষ গুগল ক্লায়েন্ট লাইব্রেরি। এগুলো ইনস্টল বা আপডেট করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • এই নির্দেশিকায় Google Cloud CLI কমান্ডগুলি ব্যবহার করতে:
    1. Google Cloud CLI ইনস্টল করুন।
    2. gcloud CLI চালু করতে, নিম্নলিখিত কোডটি চালান:
    3.   gcloud init
        

আপনার পরিবেশ তৈরি করুন

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করার আগে আপনার পরিবেশ কীভাবে সেট আপ করবেন, তা নিম্নলিখিত বিভাগে ব্যাখ্যা করা হয়েছে।

Google Workspace Events API এবং Google Cloud Pub/Sub API সক্রিয় করুন

গুগল এপিআই ব্যবহার করার আগে, আপনাকে একটি গুগল ক্লাউড প্রজেক্টে সেগুলি চালু করতে হবে। আপনি একটি একক গুগল ক্লাউড প্রজেক্টে এক বা একাধিক এপিআই চালু করতে পারেন।

গুগল ক্লাউড কনসোল

Google Cloud কনসোলে, আপনার অ্যাপের জন্য Google Cloud প্রজেক্টটি খুলুন এবং Google Workspace Events API ও Pub/Sub API সক্রিয় করুন:

এপিআইগুলি সক্রিয় করুন

জিক্লাউড

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে, আপনার গুগল অ্যাকাউন্টে সাইন ইন করুন:

    gcloud auth login
  2. আপনার অ্যাপের জন্য প্রজেক্টটিকে ক্লাউড প্রজেক্ট হিসেবে সেট করুন:

    gcloud config set project PROJECT_ID

    PROJECT_ID জায়গায় আপনার অ্যাপের ক্লাউড প্রজেক্টের প্রজেক্ট আইডিটি বসান।

  3. Google Workspace Events API এবং Google Cloud Pub/Sub API সক্রিয় করুন:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়াল তৈরি করুন

OAuth ক্লায়েন্ট আইডি কীভাবে তৈরি করবেন সে সম্পর্কে নির্দিষ্ট নির্দেশাবলীর জন্য আপনার অ্যাপ্লিকেশনের ধরণ নির্বাচন করুন:

ওয়েব অ্যাপ্লিকেশন

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > ওয়েব অ্যাপ্লিকেশন-এ ক্লিক করুন।
  4. Name ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google API Console-এ দেখানো হয়।
  5. আপনার অ্যাপ সম্পর্কিত অনুমোদিত URI-গুলো যোগ করুন:
    • ক্লায়েন্ট-সাইড অ্যাপস (জাভাস্ক্রিপ্ট) – ‘Authorized JavaScript origins’-এর অধীনে, ‘Add URI’-তে ক্লিক করুন। এরপর, ব্রাউজার রিকোয়েস্টের জন্য ব্যবহার করার উদ্দেশ্যে একটি URI লিখুন। এটি সেই ডোমেইনগুলোকে শনাক্ত করে, যেখান থেকে আপনার অ্যাপ্লিকেশন OAuth 2.0 সার্ভারে API রিকোয়েস্ট পাঠাতে পারবে।
    • সার্ভার-সাইড অ্যাপস (জাভা, পাইথন এবং আরও)‘Authorized redirect URIs’-এর অধীনে, ‘Add URI’-তে ক্লিক করুন। এরপর, একটি এন্ডপয়েন্ট URI লিখুন যেখানে OAuth 2.0 সার্ভার প্রতিক্রিয়া পাঠাতে পারবে।
  6. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি OAuth 2.0 ক্লায়েন্ট আইডি-এর অধীনে দেখা যায়।

    ক্লায়েন্ট আইডিটি নোট করুন। ওয়েব অ্যাপ্লিকেশনের জন্য ক্লায়েন্ট সিক্রেট ব্যবহার করা হয় না।

অ্যান্ড্রয়েড

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > অ্যান্ড্রয়েড-এ ক্লিক করুন।
  4. "Name" ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র গুগল এপিআই কনসোলে দেখানো হয়।
  5. 'প্যাকেজ নেম' ফিল্ডে আপনার AndroidManifest.xml ফাইল থেকে প্যাকেজ নেমটি লিখুন।
  6. 'SHA-1 সার্টিফিকেট ফিঙ্গারপ্রিন্ট' ফিল্ডে, আপনার জেনারেট করা SHA-1 সার্টিফিকেট ফিঙ্গারপ্রিন্টটি প্রবেশ করান।
  7. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

আইওএস

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > iOS-এ ক্লিক করুন।
  4. "Name" ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র গুগল এপিআই কনসোলে দেখানো হয়।
  5. "বান্ডেল আইডি" ফিল্ডে, অ্যাপের Info.plist ফাইলে তালিকাভুক্ত বান্ডেল আইডেন্টিফায়ারটি লিখুন।
  6. ঐচ্ছিক: যদি আপনার অ্যাপটি অ্যাপল অ্যাপ স্টোরে থাকে, তাহলে অ্যাপ স্টোর আইডিটি লিখুন।
  7. ঐচ্ছিক: "টিম আইডি" ফিল্ডে, অ্যাপল দ্বারা তৈরি এবং আপনার টিমকে বরাদ্দ করা অনন্য ১০-অক্ষরের স্ট্রিংটি লিখুন।
  8. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

ক্রোম অ্যাপ

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > ক্রোম এক্সটেনশন-এ ক্লিক করুন।
  4. "Name" ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র গুগল এপিআই কনসোলে দেখানো হয়।
  5. "আইটেম আইডি" ফিল্ডে আপনার অ্যাপের অনন্য ৩২-অক্ষরের আইডি স্ট্রিংটি লিখুন। এই আইডি ভ্যালুটি আপনি আপনার অ্যাপের ক্রোম ওয়েব স্টোর ইউআরএল-এ এবং ক্রোম ওয়েব স্টোর ডেভেলপার ড্যাশবোর্ডে খুঁজে পাবেন।
  6. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

ডেস্কটপ অ্যাপ

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > ডেস্কটপ অ্যাপ-এ ক্লিক করুন।
  4. Name ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google API Console-এ দেখানো হয়।
  5. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

টিভি এবং সীমিত ইনপুট ডিভাইস

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > টিভি এবং সীমিত ইনপুট ডিভাইস-এ ক্লিক করুন।
  4. "Name" ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র গুগল এপিআই কনসোলে দেখানো হয়।
  5. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম (UWP)

  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

    ক্লায়েন্টদের কাছে যান

  2. ক্লায়েন্ট তৈরি করুন -এ ক্লিক করুন।
  3. অ্যাপ্লিকেশন টাইপ > ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম (UWP)- এ ক্লিক করুন।
  4. "Name" ফিল্ডে ক্রেডেনশিয়ালটির জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র গুগল এপিআই কনসোলে দেখানো হয়।
  5. "স্টোর আইডি" ফিল্ডে আপনার অ্যাপের অনন্য, ১২-অক্ষরের মাইক্রোসফট স্টোর আইডিটি লিখুন। আপনি এই আইডিটি আপনার অ্যাপের মাইক্রোসফট স্টোর ইউআরএল-এ এবং পার্টনার সেন্টারে খুঁজে পাবেন।
  6. তৈরি করুন- এ ক্লিক করুন।

    নতুন তৈরি করা ক্রেডেনশিয়ালটি "OAuth 2.0 ক্লায়েন্ট আইডি" এর অধীনে দেখা যায়।

ক্লায়েন্ট সিক্রেট JSON ফাইলটি ডাউনলোড করুন

ক্লায়েন্ট সিক্রেট ফাইল হলো OAuth ক্লায়েন্ট আইডি ক্রেডেনশিয়ালগুলির একটি JSON উপস্থাপনা, যা আপনার অ্যাপ ক্রেডেনশিয়াল প্রদান করার সময় রেফারেন্স হিসেবে ব্যবহার করতে পারে।

  1. Google API Console-এ, > APIs & Services > Credentials- এ যান।

    পরিচয়পত্রে যান

  2. OAuth 2.0 ক্লায়েন্ট আইডি- এর অধীনে, আপনার তৈরি করা ক্লায়েন্ট আইডিটিতে ক্লিক করুন।

  3. JSON ডাউনলোড করতে ক্লিক করুন।

  4. ফাইলটি credentials.json নামে সংরক্ষণ করুন।

একটি পাব/সাব টপিক তৈরি করুন এবং সাবস্ক্রাইব করুন

এই অংশে, আপনি একটি পাব/সাব টপিক এবং সেই টপিকের জন্য সাবস্ক্রিপশন তৈরি করবেন। আপনার পাব/সাব টপিকটি নোটিফিকেশন এন্ডপয়েন্ট হিসেবে কাজ করে, যেখানে আপনার গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন ইভেন্টগুলো গ্রহণ করে।

পাব/সাব টপিক তৈরি ও পরিচালনা সম্পর্কে আরও জানতে, পাব/সাব ডকুমেন্টেশন দেখুন।

একটি পাব/সাব টপিক তৈরি করতে এবং সাবস্ক্রাইব করতে:

গুগল এপিআই কনসোল

  1. Google API Console-এ, Pub/Sub পৃষ্ঠায় যান:

    গুগল ক্লাউড পাব/সাব-এ যান

    আপনার অ্যাপের জন্য ক্লাউড প্রজেক্টটি নির্বাচিত আছে কিনা, তা নিশ্চিত করুন।

  2. ক্লিক করে টপিক তৈরি করুন এবং নিম্নলিখিত কাজগুলো করুন:

    1. আপনার টপিকের জন্য একটি নাম লিখুন, যেমন workspace-events-topic
    2. 'Add a default subscription' বিকল্পটি নির্বাচিত রাখুন। Pub/Sub এই ডিফল্ট সাবস্ক্রিপশনটির নামকরণ আপনার টপিকের নামের মতোই করে, যেমন workspace-events-topic-sub
    3. ঐচ্ছিক: আপনার টপিকের জন্য অতিরিক্ত প্রোপার্টি আপডেট বা কনফিগার করুন।
  3. Create-এ ক্লিক করুন। আপনার সম্পূর্ণ টপিকের নামটি projects/ PROJECT_ID /topics/ TOPIC_ID এই ফরম্যাটে থাকবে। পরবর্তী ধাপে এই সম্পূর্ণ নামটি ব্যবহার করুন।

  4. আপনার টপিকে পাব/সাব বার্তা প্রকাশ করার অনুমতি দিন:

    1. আপনার টপিকের পেজে, সাইড প্যানেলে গিয়ে পারমিশন ট্যাবটি খুলুন।
    2. প্রিন্সিপাল যোগ করুন -এ ক্লিক করুন।
    3. 'Add principals' ফিল্ডে, Google Workspace অ্যাপ্লিকেশনের সেই সার্ভিস অ্যাকাউন্টটি যোগ করুন যেটি আপনার সাবস্ক্রিপশনে ইভেন্ট সরবরাহ করে:
      1. চ্যাট ইভেন্টগুলির জন্য:
      2. ডেভেলপার প্রিভিউ: ড্রাইভ ইভেন্টের জন্য, drive-api-event-push@system.gserviceaccount.com
      3. Meet ইভেন্টগুলির জন্য, meet-api-event-push@system.gserviceaccount.com .
    4. Assign roles মেনু থেকে Pub/Sub Publisher নির্বাচন করুন।
    5. সেভ-এ ক্লিক করুন। আপনার টপিকের অনুমতিগুলো আপডেট হতে কয়েক মিনিট সময় লাগতে পারে।

জিক্লাউড

  1. আপনার ক্লাউড প্রজেক্টে, নিম্নলিখিত কমান্ডটি চালিয়ে একটি টপিক তৈরি করুন:

    gcloud pubsub topics create TOPIC_ID

    TOPIC_ID পরিবর্তে আপনার টপিকের জন্য একটি অনন্য আইডি ব্যবহার করুন, যেমন workspace-events-topic

    আউটপুটে সম্পূর্ণ টপিকের নামটি projects/ PROJECT_ID /topics/ TOPIC_ID ফরম্যাটে প্রদর্শিত হয়। নামটি লিখে রাখুন এবং নিশ্চিত করুন যে PROJECT_ID এর মানটি আপনার অ্যাপের ক্লাউড প্রজেক্ট আইডি। পরবর্তী ধাপে এবং পরে গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করতে টপিকের নামটি ব্যবহার করুন।

  2. আপনার টপিকে বার্তা প্রকাশ করার অনুমতি দিন:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • TOPIC_NAME : সম্পূর্ণ টপিকের নাম, যা পূর্ববর্তী ধাপের আউটপুট। এর ফরম্যাট হলো projects/ PROJECT_ID /topics/ TOPIC_ID
    • GOOGLE_WORKSPACE_APPLICATION : গুগল ওয়ার্কস্পেস অ্যাপ্লিকেশন যা আপনার সাবস্ক্রিপশনে ইভেন্ট সরবরাহ করবে:

    আপনার টপিকের অনুমতিগুলো আপডেট করতে কয়েক মিনিট সময় লাগতে পারে।

  3. বিষয়টির জন্য একটি পাব/সাব সাবস্ক্রিপশন তৈরি করুন:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • SUBSCRIPTION_NAME : আপনার সাবস্ক্রিপশনের জন্য একটি নাম, যেমন workspace-events-subscription
    • TOPIC_NAME : আপনার টপিকের নাম যা আপনি পূর্ববর্তী ধাপে তৈরি করেছেন।

একটি গুগল ওয়ার্কস্পেস রিসোর্সে সাবস্ক্রাইব করুন

এই বিভাগে, আপনি যে গুগল ওয়ার্কস্পেস রিসোর্সটির ইভেন্টগুলো নিরীক্ষণ করতে চান, সেটিতে সাবস্ক্রাইব করবেন।

লক্ষ্য সম্পদ নির্বাচন ও শনাক্ত করুন

একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনে, টার্গেট রিসোর্স হলো সেই গুগল ওয়ার্কস্পেস রিসোর্স যা আপনি ইভেন্টের জন্য মনিটর করেন। টার্গেট রিসোর্সটি সাবস্ক্রিপশনের ' targetResource ফিল্ডে সম্পূর্ণ রিসোর্স নামটি ব্যবহার করে ফরম্যাট করা থাকে। উদাহরণস্বরূপ, একটি চ্যাট স্পেস ( spaces/AAAABBBBBBB ) মনিটর করে এমন সাবস্ক্রিপশনের জন্য, targetResource এর মান হবে //chat.googleapis.com/spaces/AAAABBBBBBB

চ্যাটের জন্য একটি লক্ষ্য রিসোর্স চিহ্নিত করুন

লক্ষ্য সম্পদ ফর্ম্যাট সীমাবদ্ধতা
মহাকাশ

//chat.googleapis.com/spaces/ SPACE

যেখানে SPACE হলো চ্যাট এপিআই space রিসোর্সের নামের মধ্যে থাকা আইডি। আপনি স্পেসের URL থেকে অথবা spaces.list() মেথড ব্যবহার করে আইডিটি পেতে পারেন।

যে চ্যাট ব্যবহারকারী বা চ্যাট অ্যাপ সাবস্ক্রিপশন অনুমোদন করে, তাকে অবশ্যই তার গুগল ওয়ার্কস্পেস বা গুগল অ্যাকাউন্টের মাধ্যমে স্পেসটির সদস্য হতে হবে। সমর্থন করে:
একজন ব্যবহারকারীর জন্য সমস্ত স্থান

//chat.googleapis.com/spaces/-

সাবস্ক্রিপশনটি শুধুমাত্র সেই স্পেসগুলির ইভেন্ট গ্রহণ করে, যেগুলির সদস্য ব্যবহারকারী তার গুগল ওয়ার্কস্পেস বা গুগল অ্যাকাউন্টের মাধ্যমে। এটি শুধুমাত্র ব্যবহারকারী প্রমাণীকরণ সমর্থন করে।
ব্যবহারকারী

//cloudidentity.googleapis.com/users/ USER

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

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

ড্রাইভের জন্য একটি লক্ষ্য সম্পদ চিহ্নিত করুন

লক্ষ্য সম্পদ ফর্ম্যাট সীমাবদ্ধতা (যদি প্রযোজ্য হয়)
ফাইল //drive.googleapis.com/files/ FILE

যেখানে FILE হলো Drive API files রিসোর্সের রিসোর্স নামের মধ্যে থাকা ID। আপনি ফাইলের URL থেকে অথবা files.list মেথড ব্যবহার করে ID-টি পেতে পারেন।

যে ব্যবহারকারী সাবস্ক্রিপশন অনুমোদন করেন, 'সাবস্ক্রাইব টু' ইভেন্টের সাপেক্ষে সাবস্ক্রিপশনের অন্তর্ভুক্ত ফাইলটিতে তার অনুমতি থাকতে হবে।
শেয়ার্ড ড্রাইভ //drive.googleapis.com/drives/ DRIVE

যেখানে DRIVE হলো Drive API-এর drives রিসোর্সের নামের মধ্যে থাকা ID। আপনি ড্রাইভের URL থেকে অথবা drives.list মেথড ব্যবহার করে ID-টি পেতে পারেন।

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

Meet-এর জন্য একটি লক্ষ্য সম্পদ চিহ্নিত করুন

লক্ষ্য সম্পদ ফর্ম্যাট সীমাবদ্ধতা (যদি প্রযোজ্য হয়)
মিটিং স্পেস //meet.googleapis.com/spaces/ SPACE

যেখানে SPACE হলো Meet REST API spaces রিসোর্সের নামের মধ্যে থাকা আইডি। বিস্তারিত জানতে, Meet কীভাবে একটি মিটিং স্পেস শনাক্ত করে তা দেখুন।

ব্যবহারকারী //cloudidentity.googleapis.com/users/ USER

যেখানে USER হলো Meet REST API participants রিসোর্সের signedinUser.user ফিল্ডে থাকা ID। বিস্তারিত জানতে, Work with participants দেখুন।

এই সাবস্ক্রিপশনের মাধ্যমে সেই সমস্ত মিটিং স্পেসের ইভেন্টগুলো পাওয়া যায়, যেগুলোর মালিক ব্যবহারকারী নিজেই। সাধারণত, মিটিং স্পেসের মালিকই সেই স্পেসের সাথে যুক্ত গুগল ক্যালেন্ডার ইভেন্টের আয়োজকও হয়ে থাকেন।

একটি গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করুন

একটি সাবস্ক্রিপশন তৈরি করতে, Google Workspace Events API-এর subscriptions.create মেথড ব্যবহার করে একটি Subscription রিসোর্স তৈরি করুন। নিম্নলিখিত ফিল্ডগুলি নির্দিষ্ট করুন:

  • targetResource : পূর্ববর্তী বিভাগে আপনার চিহ্নিত করা একটি গুগল ওয়ার্কস্পেস, যা তার সম্পূর্ণ রিসোর্স নামটি ব্যবহার করে ফরম্যাট করা হয়েছে।
  • eventTypes : রিসোর্সটি সম্পর্কে আপনি যে এক বা একাধিক ইভেন্ট টাইপ পেতে চান, তার একটি অ্যারে। উদাহরণস্বরূপ, যদি আপনার অ্যাপের শুধু একটি চ্যাট স্পেসে পোস্ট করা নতুন মেসেজ সম্পর্কে জানার প্রয়োজন হয়, তবে আপনার অ্যাপটি কেবল তৈরি হওয়া মেসেজ সম্পর্কিত ইভেন্টগুলিতে সাবস্ক্রাইব করতে পারে।
  • notificationEndpoint : একটি নোটিফিকেশন এন্ডপয়েন্ট যেখানে আপনার Google Workspace সাবস্ক্রিপশন ইভেন্ট সরবরাহ করে। পূর্ববর্তী বিভাগে তৈরি করা Pub/Sub টপিকটি ব্যবহার করুন।
  • payloadOptions : ইভেন্ট পেলোডে কী পরিমাণ রিসোর্স ডেটা অন্তর্ভুক্ত করা হবে তা নির্দিষ্ট করার অপশন। এই কনফিগারেশনটি আপনার সাবস্ক্রিপশনের মেয়াদ শেষ হওয়ার সময়কে প্রভাবিত করে। আরও জানতে, ইভেন্ট ডেটা দেখুন।

গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করতে:

অ্যাপস স্ক্রিপ্ট

  1. আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে, createSubscription নামে একটি নতুন স্ক্রিপ্ট ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি যোগ করুন:

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • TARGET_RESOURCE : আপনি যে গুগল ওয়ার্কস্পেস রিসোর্সটি সাবস্ক্রাইব করছেন, তার সম্পূর্ণ রিসোর্স নামটি এখানে উল্লেখ করুন। উদাহরণস্বরূপ, AAAABBBB স্পেস আইডিযুক্ত একটি চ্যাট স্পেস সাবস্ক্রাইব করতে, //chat.googleapis.com/spaces/AAAABBBB ব্যবহার করুন।
    • EVENT_TYPES : এক বা একাধিক ইভেন্টের ধরণ যেগুলোতে আপনি টার্গেট রিসোর্সে সাবস্ক্রাইব করতে চান। স্ট্রিং-এর একটি অ্যারে হিসাবে ফরম্যাট করুন, যেমন 'google.workspace.chat.message.v1.created'
    • TOPIC_NAME : আপনার ক্লাউড প্রজেক্টে তৈরি করা পাব/সাব টপিকের সম্পূর্ণ নাম। ফরম্যাটটি হলো projects/ PROJECT_ID /topics/ TOPIC_ID
    • RESOURCE_DATA : একটি বুলিয়ান যা নির্দিষ্ট করে যে সাবস্ক্রিপশনের পেলোডে রিসোর্স ডেটা অন্তর্ভুক্ত আছে কিনা:

      • True : সমস্ত রিসোর্স ডেটা অন্তর্ভুক্ত করে। কোন কোন ফিল্ড অন্তর্ভুক্ত হবে তা সীমিত করতে, fieldMask ফিল্ডটি যোগ করুন এবং পরিবর্তিত রিসোর্সের জন্য অন্তত একটি ফিল্ড নির্দিষ্ট করুন। শুধুমাত্র চ্যাট রিসোর্সের সাবস্ক্রিপশনগুলোই রিসোর্স ডেটা অন্তর্ভুক্ত করা সমর্থন করে।
      • False : রিসোর্স ডেটা বাদ দেয়।
  2. গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন তৈরি করতে, আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টে createSubscription ফাংশনটি চালান।

পাইথন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে create_subscription.py নামে একটি ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি যোগ করুন:

    """Create subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • SCOPES : এক বা একাধিক OAuth স্কোপ যা সাবস্ক্রিপশনের প্রতিটি ইভেন্ট টাইপকে সাপোর্ট করে। এটি স্ট্রিং-এর একটি অ্যারে হিসাবে ফরম্যাট করা হয়। একাধিক স্কোপ তালিকাভুক্ত করতে, কমা দিয়ে আলাদা করুন। উদাহরণস্বরূপ, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'
    • TARGET_RESOURCE : আপনি যে গুগল ওয়ার্কস্পেস রিসোর্সটি সাবস্ক্রাইব করছেন, তার সম্পূর্ণ রিসোর্স নামটি এখানে উল্লেখ করুন। উদাহরণস্বরূপ, AAAABBBB স্পেস আইডিযুক্ত একটি চ্যাট স্পেস সাবস্ক্রাইব করতে, //chat.googleapis.com/spaces/AAAABBBB ব্যবহার করুন।
    • EVENT_TYPES : এক বা একাধিক ইভেন্টের ধরণ যেগুলোতে আপনি টার্গেট রিসোর্সে সাবস্ক্রাইব করতে চান। স্ট্রিং-এর একটি অ্যারে হিসাবে ফরম্যাট করুন, যেমন 'google.workspace.chat.message.v1.created'
    • TOPIC_NAME : আপনার ক্লাউড প্রজেক্টে তৈরি করা পাব/সাব টপিকের সম্পূর্ণ নাম। ফরম্যাটটি হলো projects/ PROJECT_ID /topics/ TOPIC_ID
    • RESOURCE_DATA : একটি বুলিয়ান যা নির্দিষ্ট করে যে সাবস্ক্রিপশনের পেলোডে রিসোর্স ডেটা অন্তর্ভুক্ত আছে কিনা:

      • True : সমস্ত রিসোর্স ডেটা অন্তর্ভুক্ত করে। কোন কোন ফিল্ড অন্তর্ভুক্ত হবে তা সীমিত করতে, fieldMask ফিল্ডটি যোগ করুন এবং পরিবর্তিত রিসোর্সের জন্য অন্তত একটি ফিল্ড নির্দিষ্ট করুন। শুধুমাত্র চ্যাট রিসোর্সের সাবস্ক্রিপশনগুলোই রিসোর্স ডেটা অন্তর্ভুক্ত করা সমর্থন করে।
      • False : রিসোর্স ডেটা বাদ দেয়।
  2. Google Workspace সাবস্ক্রিপশন তৈরি করতে, আপনার টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

    python3 create_subscription.py

গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই একটি সম্পন্ন হওয়া দীর্ঘ-চলমান অপারেশন ফেরত দেয়, যেটিতে আপনার তৈরি করা Subscription রিসোর্সের ইনস্ট্যান্সটি থাকে।

আপনার গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন পরীক্ষা করুন

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

আপনার গুগল ওয়ার্কস্পেস সাবস্ক্রিপশন পরীক্ষা করতে:

গুগল এপিআই কনসোল

  1. আপনার গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনের নির্দিষ্ট রিসোর্সে এক বা একাধিক ধরনের ইভেন্ট ট্রিগার করুন। উদাহরণস্বরূপ, যদি আপনি কোনো চ্যাট স্পেসে নতুন মেসেজের জন্য সাবস্ক্রাইব করে থাকেন, তাহলে সেই স্পেসে একটি মেসেজ পোস্ট করুন।

  2. Google API Console-এ, Pub/Sub পৃষ্ঠায় যান:

    পাব/সাব-এ যান

    আপনার অ্যাপের জন্য ক্লাউড প্রজেক্টটি নির্বাচিত আছে কিনা, তা নিশ্চিত করুন।

  3. পাব/সাব মেনুতে, সাবস্ক্রিপশন-এ ক্লিক করুন।

  4. টেবিলে আপনার টপিকের জন্য পাব/সাব সাবস্ক্রিপশনটি খুঁজুন এবং সাবস্ক্রিপশনের নামে ক্লিক করুন।

  5. মেসেজ ট্যাবে ক্লিক করুন।

  6. পুল- এ ক্লিক করুন। একটি ইভেন্ট থেকে পাব/সাব মেসেজ তৈরি হতে কয়েক মিনিট পর্যন্ত সময় লাগতে পারে।

জিক্লাউড

  1. আপনার গুগল ওয়ার্কস্পেস সাবস্ক্রিপশনের নির্দিষ্ট রিসোর্সে এক বা একাধিক ধরনের ইভেন্ট ট্রিগার করুন। উদাহরণস্বরূপ, যদি আপনি কোনো চ্যাট স্পেসে নতুন মেসেজের জন্য সাবস্ক্রাইব করে থাকেন, তাহলে সেই স্পেসে একটি মেসেজ পোস্ট করুন।

  2. নিম্নলিখিত কমান্ডটি চালান:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • PUBSUB_SUBSCRIPTION_NAME : আপনার পাব/সাব সাবস্ক্রিপশনের পুরো নাম, যা projects/ PROJECT_ID /subscriptions/ SUBSCRIPTION_ID ফরম্যাটে থাকে।
    • MESSAGE_COUNT : আপনি সর্বোচ্চ যতগুলো পাব/সাব বার্তা পেতে চান।

    কোনো ইভেন্ট থেকে পাব/সাব মেসেজ তৈরি হতে কয়েক মিনিট পর্যন্ত সময় লাগতে পারে।

আপনার দ্বারা ট্রিগার করা প্রতিটি Google Workspace ইভেন্টের জন্য, আপনার Pub/Sub সাবস্ক্রিপশনে একটি মেসেজ পাঠানো হয়, যেটিতে ইভেন্টটি থাকে। বিস্তারিত জানতে, “Google Cloud Pub/Sub মেসেজ হিসেবে ইভেন্ট গ্রহণ” দেখুন।

আপনার অ্যাপ কীভাবে ইভেন্ট গ্রহণ করবে তা কনফিগার করুন।

আপনার তৈরি করা পাব/সাব সাবস্ক্রিপশনটি পুল-ভিত্তিক। আপনার পাব/সাব সাবস্ক্রিপশনটি পরীক্ষা করার পরে, আপনার অ্যাপ কীভাবে ইভেন্ট গ্রহণ করবে তা পরিবর্তন করতে আপনি ডেলিভারি টাইপ আপডেট করতে পারেন। উদাহরণস্বরূপ, আপনি পাব/সাব সাবস্ক্রিপশনটিকে একটি পুশ ডেলিভারি টাইপে কনফিগার করতে পারেন, যাতে আপনার অ্যাপ সরাসরি একটি অ্যাপ এন্ডপয়েন্টে ইভেন্ট গ্রহণ করতে পারে।

পাব/সাব সাবস্ক্রিপশন কনফিগার করার পদ্ধতি সম্পর্কে জানতে, পাব/সাব ডকুমেন্টেশন দেখুন।

গুগল চ্যাট অ্যাপ হিসেবে চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন

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

এমন একটি স্ক্রিপ্ট লিখুন যা গুগল ওয়ার্কস্পেস ইভেন্টস এপিআই (Google Workspace Events API)-কে কল করে।

অ্যাপ অথেন্টিকেশন এবং অ্যাডমিনিস্ট্রেটর অনুমোদন সহ চ্যাট স্পেস ইভেন্টের জন্য সাবস্ক্রিপশন তৈরি করার পদ্ধতি নিচে দেওয়া হলো:

  1. প্রয়োজন হলে একটি চ্যাট অ্যাপ তৈরি করুন
  2. একটি চ্যাট রিসোর্সে সাবস্ক্রাইব করুন , কিন্তু:

    1. ব্যবহারকারী প্রমাণীকরণের পরিবর্তে, এককালীন প্রশাসক অনুমোদনের মাধ্যমে একটি চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করুন
    2. চ্যাট অ্যাপকে চ্যাট ইভেন্টগুলিতে সাবস্ক্রাইব করার অনুমতি দেয় এমন অনুমোদন স্কোপগুলি নির্দিষ্ট করুন। এই অনুমোদন স্কোপগুলি সর্বদা chat.app দিয়ে শুরু হয় এবং নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:

      • https://www.googleapis.com/auth/chat.app.memberships : চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন।
      • https://www.googleapis.com/auth/chat.app.memberships.readonly : চ্যাট স্পেসের মেম্বার ইভেন্টগুলোতে সাবস্ক্রাইব করুন।
      • https://www.googleapis.com/auth/chat.app.messages.readonly : চ্যাট স্পেসের মেসেজ এবং রিঅ্যাকশন ইভেন্টগুলিতে সাবস্ক্রাইব করুন।
      • https://www.googleapis.com/auth/chat.app.spaces : চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন।
      • https://www.googleapis.com/auth/chat.app.spaces.readonly : চ্যাট স্পেস ইভেন্টগুলিতে সাবস্ক্রাইব করুন।

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

পাইথন

  """Create subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
  TOPIC = 'TOPIC_NAME'

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
  )

  BODY = {
      'target_resource': TARGET_RESOURCE,
      'event_types': EVENT_TYPES,
      'notification_endpoint': {'pubsub_topic': TOPIC},
      'payload_options': {'include_resource': RESOURCE_DATA},
  }
  response = service.subscriptions().create(body=BODY).execute()
  print(response)

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • SPACE_ID : স্পেসের নাম, যা আপনি চ্যাট এপিআই-এর spaces.list মেথড থেকে অথবা কোনো স্পেসের ইউআরএল থেকে পেতে পারেন।
  • TOPIC_NAME : আপনার ক্লাউড প্রজেক্টে তৈরি করা পাব/সাব টপিকের সম্পূর্ণ নাম। ফরম্যাটটি হলো projects/ PROJECT_ID /topics/ TOPIC_ID
  • RESOURCE_DATA : একটি বুলিয়ান যা নির্দিষ্ট করে যে সাবস্ক্রিপশনের পেলোডে রিসোর্স ডেটা অন্তর্ভুক্ত আছে কিনা:

    • True : সমস্ত রিসোর্স ডেটা অন্তর্ভুক্ত করে। কোন কোন ফিল্ড অন্তর্ভুক্ত হবে তা সীমিত করতে, fieldMask ফিল্ডটি যোগ করুন এবং পরিবর্তিত রিসোর্সের জন্য অন্তত একটি ফিল্ড নির্দিষ্ট করুন। শুধুমাত্র চ্যাট রিসোর্সের সাবস্ক্রিপশনগুলোই রিসোর্স ডেটা অন্তর্ভুক্ত করা সমর্থন করে।
    • False : রিসোর্স ডেটা বাদ দেয়।