Google Chat অ্যাপ হিসেবে প্রমাণীকরণ করুন

এই নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে একটি চ্যাট অ্যাপের পক্ষ থেকে গুগল চ্যাট এপিআই (Google Chat API) অ্যাক্সেস করার জন্য একটি সার্ভিস অ্যাকাউন্ট সেট আপ এবং ব্যবহার করতে হয়। প্রথমে, এটি আপনাকে একটি সার্ভিস অ্যাকাউন্ট তৈরি করার পদ্ধতি ধাপে ধাপে দেখাবে। তারপর, এটি দেখাবে কীভাবে এমন একটি স্ক্রিপ্ট লিখতে হয় যা সার্ভিস অ্যাকাউন্টটি ব্যবহার করে চ্যাট এপিআই-এর সাথে প্রমাণীকরণ করে এবং একটি চ্যাট স্পেসে বার্তা পোস্ট করে।

একটি সার্ভিস অ্যাকাউন্টের মাধ্যমে প্রমাণীকৃত হলে, কোনো চ্যাট স্পেসের ডেটা পেতে বা সেখানে কোনো কাজ সম্পাদন করতে হলে, চ্যাট অ্যাপটিকে অবশ্যই সেই স্পেসের সদস্য হতে হবে। উদাহরণস্বরূপ, কোনো স্পেসের সদস্যদের তালিকা দেখতে বা সেখানে একটি বার্তা তৈরি করতে, চ্যাট অ্যাপটিকে অবশ্যই সেই স্পেসের সদস্য হতে হবে। এর একমাত্র ব্যতিক্রম হলো যখন কোনো চ্যাট অ্যাপ অ্যাপ অথেন্টিকেশন ব্যবহার করে একটি স্পেস তৈরি করে; সেক্ষেত্রে অ্যাপটি স্পেসটি তৈরি করার সাথে সাথেই স্বয়ংক্রিয়ভাবে তার সদস্য হয়ে যায়।

Google Chat API-এর যে মেথডগুলো https://www.googleapis.com/auth/chat.app.* দিয়ে শুরু হওয়া অথরাইজেশন স্কোপের মাধ্যমে অ্যাপ অথরাইজেশন সমর্থন করে, সেগুলোর জন্য এককালীন অ্যাডমিনিস্ট্রেটর অনুমোদনের প্রয়োজন হয়। Google Chat API-এর যে মেথডগুলো https://www.googleapis.com/auth/chat.bot অথরাইজেশন স্কোপের মাধ্যমে অ্যাপ অথরাইজেশন সমর্থন করে, সেগুলোর জন্য অতিরিক্ত অনুমোদনের প্রয়োজন হয় না।

যদি আপনার চ্যাট অ্যাপের ব্যবহারকারীর ডেটা অ্যাক্সেস করার বা ব্যবহারকারীর পক্ষ থেকে কোনো কাজ করার প্রয়োজন হয়, তাহলে তার পরিবর্তে একজন ব্যবহারকারী হিসেবে প্রমাণীকরণ করুন । আপনি যদি একজন ডোমেইন অ্যাডমিনিস্ট্রেটর হন, তাহলে আপনি প্রতিটি ব্যবহারকারীর সম্মতির প্রয়োজন ছাড়াই আপনার ব্যবহারকারীর ডেটা অ্যাক্সেস করার জন্য একটি চ্যাট অ্যাপের সার্ভিস অ্যাকাউন্টকে অনুমোদন দিতে ডোমেইন-ব্যাপী কর্তৃত্ব অর্পণ করতে পারেন। আরও তথ্যের জন্য, ‘ডোমেইন-ব্যাপী কর্তৃত্ব অর্পণ ব্যবহার করে প্রমাণীকরণ এবং অনুমোদন’ দেখুন।

চ্যাট অ্যাপে কখন অথেনটিকেশনের প্রয়োজন হয় এবং কী ধরনের অথেনটিকেশন ব্যবহার করতে হবে, সে সম্পর্কে আরও জানতে, চ্যাট এপিআই অথেনটিকেশন এবং অথরাইজেশন ওভারভিউ-এর মধ্যে ‘প্রয়োজনীয় অথেনটিকেশনের প্রকারভেদ’ দেখুন।

পূর্বশর্ত

জাভা

  • জেডিকে ১.৭ বা তার বেশি
  • মেভেন প্যাকেজ ম্যানেজমেন্ট টুল
  • একটি ইনিশিয়ালাইজড মেভেন প্রজেক্ট। একটি নতুন প্রজেক্ট ইনিশিয়ালাইজ করতে, আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:
    mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
  • একটি গুগল চ্যাট অ্যাপ যা ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ করে এবং সেগুলোর উত্তর দেয়। একটি HTTP সার্ভিস ব্যবহার করে ইন্টারেক্টিভ চ্যাট অ্যাপ তৈরি করতে, এই কুইকস্টার্টটি সম্পূর্ণ করুন।
  • একটি স্পেসে চ্যাট অ্যাপটি যোগ করুন। চ্যাট অ্যাপটি যোগ করতে, ‘গুগল চ্যাট অ্যাপের ইন্টারেক্টিভ ফিচারগুলো পরীক্ষা করুন’ দেখুন।

পাইথন

নোড.জেএস

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

ধাপ ১: গুগল ক্লাউড কনসোলে একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন

একটি সার্ভিস অ্যাকাউন্ট তৈরি করুন যা আপনার চ্যাট অ্যাপ গুগল এপিআই (Google APIs) অ্যাক্সেস করতে ব্যবহার করতে পারবে।

একটি পরিষেবা অ্যাকাউন্ট তৈরি করুন

একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

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

  1. গুগল ক্লাউড কনসোলে, > আইএএম ও অ্যাডমিন > সার্ভিস অ্যাকাউন্টস- এ যান।

    পরিষেবা অ্যাকাউন্টগুলিতে যান

  2. সার্ভিস অ্যাকাউন্ট তৈরি করুন -এ ক্লিক করুন।
  3. সার্ভিস অ্যাকাউন্টের বিবরণ পূরণ করুন, তারপর 'তৈরি করুন এবং চালিয়ে যান' -এ ক্লিক করুন।
  4. ঐচ্ছিক: আপনার গুগল ক্লাউড প্রোজেক্টের রিসোর্সগুলিতে অ্যাক্সেস দেওয়ার জন্য আপনার সার্ভিস অ্যাকাউন্টে রোল নির্ধারণ করুন। আরও বিস্তারিত জানতে, “রিসোর্সগুলিতে অ্যাক্সেস প্রদান, পরিবর্তন এবং প্রত্যাহার” দেখুন।
  5. চালিয়ে যান-এ ক্লিক করুন।
  6. ঐচ্ছিক: সেইসব ব্যবহারকারী বা গোষ্ঠীর নাম লিখুন যারা এই পরিষেবা অ্যাকাউন্টটি দিয়ে পরিচালনা ও কার্যকলাপ সম্পাদন করতে পারবে। আরও বিস্তারিত জানতে, ‘পরিষেবা অ্যাকাউন্টের ছদ্মবেশ ব্যবস্থাপনা’ দেখুন।
  7. Done-এ ক্লিক করুন। সার্ভিস অ্যাকাউন্টের ইমেল ঠিকানাটি লিখে রাখুন।

gcloud CLI

  1. পরিষেবা অ্যাকাউন্ট তৈরি করুন:
    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --display-name="SERVICE_ACCOUNT_NAME"
  2. ঐচ্ছিক: আপনার গুগল ক্লাউড প্রোজেক্টের রিসোর্সগুলিতে অ্যাক্সেস দেওয়ার জন্য আপনার সার্ভিস অ্যাকাউন্টে রোল নির্ধারণ করুন। আরও বিস্তারিত জানতে, “রিসোর্সগুলিতে অ্যাক্সেস প্রদান, পরিবর্তন এবং প্রত্যাহার” দেখুন।

সার্ভিস অ্যাকাউন্টটি সার্ভিস অ্যাকাউন্ট পেজে দেখা যায়। এরপর, সার্ভিস অ্যাকাউন্টটির জন্য একটি প্রাইভেট কী তৈরি করুন।

একটি ব্যক্তিগত কী তৈরি করুন

সার্ভিস অ্যাকাউন্টের জন্য একটি প্রাইভেট কী তৈরি ও ডাউনলোড করতে, এই ধাপগুলো অনুসরণ করুন:

  1. গুগল ক্লাউড কনসোলে, > আইএএম ও অ্যাডমিন > সার্ভিস অ্যাকাউন্টস- এ যান।

    পরিষেবা অ্যাকাউন্টগুলিতে যান

  2. আপনার পরিষেবা অ্যাকাউন্ট নির্বাচন করুন।
  3. Keys > Add key > Create new key-তে ক্লিক করুন।
  4. JSON নির্বাচন করুন, তারপর Create-এ ক্লিক করুন।

    আপনার নতুন পাবলিক/প্রাইভেট কী পেয়ারটি তৈরি হয়ে আপনার মেশিনে একটি নতুন ফাইল হিসেবে ডাউনলোড হবে। ডাউনলোড করা JSON ফাইলটি আপনার ওয়ার্কিং ডিরেক্টরিতে credentials.json নামে সেভ করুন। এই ফাইলটিই এই কী-টির একমাত্র কপি। আপনার কী নিরাপদে সংরক্ষণ করার পদ্ধতি সম্পর্কে জানতে, “সার্ভিস অ্যাকাউন্ট কী ব্যবস্থাপনা” দেখুন।

  5. বন্ধ করুন-এ ক্লিক করুন।

সার্ভিস অ্যাকাউন্ট সম্পর্কে আরও তথ্যের জন্য, গুগল ক্লাউড আইএএম ডকুমেন্টেশনে সার্ভিস অ্যাকাউন্টস অংশটি দেখুন।

এরপরে, এই সার্ভিস অ্যাকাউন্টের জন্য একটি গুগল ওয়ার্কস্পেস মার্কেটপ্লেস-উপযোগী OAuth ক্লায়েন্ট তৈরি করুন।

প্রশাসকের অনুমোদন গ্রহণ করুন

https://www.googleapis.com/auth/chat.bot অথরাইজেশন স্কোপটি ব্যবহার করার জন্য কোনো অ্যাডমিনিস্ট্রেটর অনুমোদনের প্রয়োজন নেই। ধাপ ২-এ যান: গুগল ক্লায়েন্ট লাইব্রেরি এবং অন্যান্য ডিপেন্ডেন্সি ইনস্টল করুন । এই গাইডের উদাহরণটিতে https://www.googleapis.com/auth/chat.bot অথরাইজেশন স্কোপটি ব্যবহার করা হয়েছে, তাই আপনি যদি উদাহরণটি অনুসরণ করেন, তবে ধাপ ২-এ যান।

https://www.googleapis.com/auth/chat.app.* দিয়ে শুরু হওয়া কোনো অথরাইজেশন স্কোপ ব্যবহার করতে হলে, আপনার চ্যাট অ্যাপটিকে অবশ্যই এককালীন অ্যাডমিনিস্ট্রেটর অনুমোদন নিতে হবে।

প্রশাসকের অনুমোদন পেতে, আপনাকে নিম্নলিখিত তথ্য দিয়ে আপনার চ্যাট অ্যাপের পরিষেবা অ্যাকাউন্টটি প্রস্তুত করতে হবে:

  • গুগল ওয়ার্কস্পেস মার্কেটপ্লেস-উপযোগী একটি OAuth ক্লায়েন্ট।
  • গুগল ওয়ার্কস্পেস মার্কেটপ্লেস এসডিকে-তে অ্যাপ কনফিগারেশন।

একটি গুগল ওয়ার্কস্পেস মার্কেটপ্লেস-উপযোগী OAuth ক্লায়েন্ট তৈরি করুন

Google Workspace Marketplace-এর সাথে সামঞ্জস্যপূর্ণ একটি OAuth ক্লায়েন্ট তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. গুগল ক্লাউড কনসোলে, > আইএএম ও অ্যাডমিন > সার্ভিস অ্যাকাউন্টস- এ যান।

    পরিষেবা অ্যাকাউন্টগুলিতে যান

  2. আপনার চ্যাট অ্যাপের জন্য তৈরি করা সার্ভিস অ্যাকাউন্টটিতে ক্লিক করুন।

  3. উন্নত সেটিংস-এ ক্লিক করুন।

  4. Google Workspace Marketplace-সামঞ্জস্যপূর্ণ OAuth ক্লায়েন্ট তৈরি করতে ক্লিক করুন।

  5. চালিয়ে যান-এ ক্লিক করুন।

একটি নিশ্চিতকরণ বার্তা প্রদর্শিত হয়, যেখানে বলা থাকে যে একটি গুগল ওয়ার্কস্পেস মার্কেটপ্লেস-উপযোগী OAuth ক্লায়েন্ট তৈরি করা হয়েছে।

Google Workspace Marketplace SDK-তে চ্যাট অ্যাপটি কনফিগার করুন।

Google Workspace Marketplace SDK-তে চ্যাট অ্যাপটি কনফিগার করতে, এই ধাপগুলো অনুসরণ করুন:

  1. গুগল ক্লাউড কনসোলে, গুগল ওয়ার্কস্পেস মার্কেটপ্লেস এসডিকে সক্রিয় করুন।

    Google Workspace Marketplace SDK সক্রিয় করুন

  2. Google Cloud কনসোলে, মেনু > APIs & Services > Enabled APIs & services > Google Workspace Marketplace SDK > App Configuration- এ যান

    অ্যাপ কনফিগারেশনে যান

  3. অ্যাপ কনফিগারেশন পৃষ্ঠাটি সম্পূর্ণ করুন। আপনি আপনার চ্যাট অ্যাপটি কীভাবে কনফিগার করবেন তা আপনার উদ্দিষ্ট দর্শক কারা এবং অন্যান্য বিষয়ের উপর নির্ভর করে। অ্যাপ কনফিগারেশন পৃষ্ঠাটি সম্পূর্ণ করার জন্য সাহায্যের প্রয়োজন হলে, Google Workspace Marketplace SDK-তে আপনার অ্যাপ কনফিগার করুন দেখুন। এই নির্দেশিকার জন্য, নিম্নলিখিত তথ্যগুলি প্রবেশ করান:

    1. অ্যাপ দৃশ্যমানতার অধীনে, ব্যক্তিগত নির্বাচন করুন।
    2. ইনস্টলেশন সেটিংস-এর অধীনে, স্বতন্ত্র + অ্যাডমিন ইনস্টল নির্বাচন করুন।
    3. অ্যাপ ইন্টিগ্রেশন-এর অধীনে, চ্যাট অ্যাপ নির্বাচন করুন।
    4. OAuth scopes-এর অধীনে, আপনার চ্যাট অ্যাপ যে সমস্ত অথেনটিকেশন স্কোপ ব্যবহার করে, সেগুলি লিখুন।

    5. ডেভেলপার তথ্যের অধীনে, আপনার ডেভেলপার নাম , ডেভেলপার ওয়েবসাইট ইউআরএল এবং ডেভেলপার ইমেল লিখুন।

    6. খসড়া সংরক্ষণ করুন- এ ক্লিক করুন।

প্রশাসকের অনুমোদন নিন।

এখন যেহেতু আপনার পরিষেবা অ্যাকাউন্টটি অ্যাডমিনিস্ট্রেটর অনুমোদন পাওয়ার জন্য কনফিগার করা হয়েছে, তাই ‘চ্যাট অ্যাপের জন্য অনুমোদন সেট আপ করুন’ -এ দেওয়া ধাপগুলো অনুসরণ করে একজন Google Workspace অ্যাডমিনিস্ট্রেটরের কাছ থেকে অনুমোদনটি নিন।

ধাপ ২: গুগল ক্লায়েন্ট লাইব্রেরি এবং অন্যান্য নির্ভরতা ইনস্টল করুন।

প্রজেক্টটির জন্য প্রয়োজনীয় গুগল ক্লায়েন্ট লাইব্রেরি এবং অন্যান্য ডিপেন্ডেন্সিগুলো ইনস্টল করুন।

জাভা

আপনার Maven প্রজেক্টে Google ক্লায়েন্ট লাইব্রেরি এবং অন্যান্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করতে, আপনার প্রজেক্টের ডিরেক্টরিতে থাকা pom.xml ফাইলটি এডিট করুন এবং নিম্নলিখিত ডিপেন্ডেন্সিগুলো যুক্ত করুন:

<dependencies>
  <!-- ... existing dependencies ... -->
  <dependency>
    <groupId>com.google.apis</groupId>
    <artifactId>google-api-services-chat</artifactId>
    <version>v1-rev20230905-2.0.0</version>
  </dependency>
  <dependency>
    <groupId>com.google.auth</groupId>
    <artifactId>google-auth-library-oauth2-http</artifactId>
    <version>1.19.0</version>
  </dependency>
  <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
  </dependency>
</dependencies>

পাইথন

যদি আপনি পাইথনের জন্য গুগল ক্লায়েন্ট লাইব্রেরিগুলো আগে থেকে ইনস্টল না করে থাকেন, তাহলে আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:

pip3 install --upgrade google-api-python-client google-auth

নোড.জেএস

আপনার Node.js প্রজেক্টে গুগল ক্লায়েন্ট লাইব্রেরিগুলো যোগ করতে, আপনার প্রজেক্টের ডিরেক্টরিতে প্রবেশ করুন এবং আপনার কমান্ড-লাইন ইন্টারফেসে নিম্নলিখিত কমান্ডটি চালান:

npm install "@googleapis/chat"

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

এই নমুনাটি সার্ভিস অ্যাকাউন্ট প্রমাণীকরণের জন্য একটি JWT টোকেন তৈরি করতে OAuth2 for Apps Script লাইব্রেরি ব্যবহার করে। আপনার Apps Script প্রজেক্টে লাইব্রেরিটি যোগ করতে:

  1. বাম দিকে, ‘এডিটর ক্লিক করুন।
  2. বাম দিকে, Libraries-এর পাশে, a library-তে ক্লিক করুন।
  3. স্ক্রিপ্ট আইডি 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF প্রবেশ করান।
  4. লুক আপ-এ ক্লিক করুন, তারপর অ্যাড-এ ক্লিক করুন।

এই নমুনাটি গুগল চ্যাট এপিআই কল করার জন্য অ্যাডভান্সড চ্যাট সার্ভিস ব্যবহার করে। আপনার অ্যাপস স্ক্রিপ্ট প্রোজেক্টের জন্য সার্ভিসটি চালু করতে:

  1. বাম দিকে, ‘এডিটর ক্লিক করুন।
  2. বাম দিকে, Services-এর পাশে, Add a service-এ করুন।
  3. গুগল চ্যাট এপিআই নির্বাচন করুন।
  4. ভার্সন- এ, v1 নির্বাচন করুন।
  5. যোগ করুন-এ ক্লিক করুন।

আপনি আমাদের ক্লায়েন্ট লাইব্রেরি দ্বারা সমর্থিত যেকোনো ভাষা ব্যবহার করতে পারেন।

ধাপ ৩: একটি স্ক্রিপ্ট লিখুন যা সার্ভিস অ্যাকাউন্ট ব্যবহার করে চ্যাট এপিআই-এর সাথে প্রমাণীকরণ করে।

নিম্নলিখিত কোডটি একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করে চ্যাট এপিআই-এর সাথে প্রমাণীকরণ করে, তারপর একটি চ্যাট স্পেসে বার্তা পোস্ট করে:

জাভা

  1. আপনার প্রোজেক্ট ডিরেক্টরিতে, src/main/java/com/google/chat/app/authsample/App.java ফাইলটি খুলুন।
  2. App.java ফাইলের বিষয়বস্তু নিচের কোড দিয়ে প্রতিস্থাপন করুন:

    package com.google.chat.app.authsample;
    
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.http.HttpRequestInitializer;
    import com.google.api.client.json.gson.GsonFactory;
    import com.google.api.services.chat.v1.HangoutsChat;
    import com.google.api.services.chat.v1.model.Message;
    import com.google.auth.http.HttpCredentialsAdapter;
    import com.google.auth.oauth2.GoogleCredentials;
    
    /**
     * Authenticates with Chat API using service account credentials,
     * then creates a Chat message.
     */
    public class App {
        // Specify required scopes.
        private static final String CHAT_SCOPE = "https://www.googleapis.com/auth/chat.bot";
    
        // Specify service account details.
        private static final String PRIVATE_KEY_RESOURCE_URI = "/credentials.json";
    
        public static void main( String[] args ) {
            try {
                // Run app.
                Message response = App.createChatMessage();
                // Print details about the created message.
                System.out.println(response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private static Message createChatMessage() throws Exception {
            // Build the Chat API client and authenticate with the service account.
            GoogleCredentials credentials = GoogleCredentials.fromStream(
                App.class.getResourceAsStream(PRIVATE_KEY_RESOURCE_URI))
                .createScoped(CHAT_SCOPE);
            HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);
            HangoutsChat chatService = new HangoutsChat.Builder(
                GoogleNetHttpTransport.newTrustedTransport(),
                GsonFactory.getDefaultInstance(),
                requestInitializer)
                .setApplicationName("auth-sample-app")
                .build();
    
            // The space to create the message in.
            //
            // Replace SPACE_NAME with a space name.
            // Obtain the space name from the spaces resource of Chat API,
            // or from a space's URL.
            String spaceName = "spaces/SPACE_NAME";
    
            // Create a Chat message.
            Message message = new Message().setText("Hello, world!");
            return chatService.spaces().messages().create(spaceName, message).execute();
        }
    }
    
  3. কোডে, SPACE_NAME এর জায়গায় একটি স্পেসের নাম বসান, যা আপনি Chat API-এর spaces.list মেথড থেকে অথবা কোনো স্পেসের URL থেকে পেতে পারেন।

  4. আপনার প্রোজেক্টের ডিরেক্টরির মধ্যে resources নামে একটি নতুন সাবডিরেক্টরি তৈরি করুন।

  5. নিশ্চিত করুন যে আপনার সার্ভিস অ্যাকাউন্টের প্রাইভেট কী ফাইলের নাম credentials.json এবং এটি resources সাবডিরেক্টরিতে কপি করুন।

  6. প্রজেক্ট প্যাকেজে প্রাইভেট কী ফাইলটি অন্তর্ভুক্ত করার জন্য Maven কনফিগার করতে, আপনার প্রজেক্টের ডিরেক্টরিতে থাকা pom.xml ফাইলটি এডিট করুন এবং <build> সেকশনে নিম্নলিখিত কনফিগারেশনটি যোগ করুন:

    <build>
      <!-- ... existing configurations ... -->
      <resources>
        <resource>
          <directory>resources</directory>
        </resource>
      </resources>
    </build>
    
  7. প্রজেক্ট প্যাকেজে ডিপেন্ডেন্সিগুলো অন্তর্ভুক্ত করতে এবং আপনার অ্যাপ্লিকেশনের প্রধান ক্লাসটি এক্সিকিউট করতে Maven কনফিগার করার জন্য, আপনার প্রজেক্টের ডিরেক্টরিতে থাকা pom.xml ফাইলটি এডিট করুন এবং <plugins> সেকশনে নিম্নলিখিত কনফিগারেশনটি যোগ করুন:

    <plugins>
      <!-- ... existing configurations ... -->
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.google.chat.app.authsample.App</mainClass>
            </manifest>
          </archive>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
    

পাইথন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে chat_app_auth.py নামে একটি ফাইল তৈরি করুন।
  2. chat_app_auth.py ফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    creds = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=creds)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE_NAME with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE_NAME',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    # Prints details about the created message.
    print(result)
    
  3. কোডে, SPACE_NAME এর জায়গায় একটি স্পেসের নাম বসান, যা আপনি Chat API-এর spaces.list মেথড থেকে অথবা স্পেসটির URL থেকে পেতে পারেন। নিশ্চিত করুন যে আপনার সার্ভিস অ্যাকাউন্টের প্রাইভেট কী ফাইলটির নাম credentials.json

নোড.জেএস

  1. আপনার প্রোজেক্টের ডিরেক্টরিতে chat_app_auth.js নামে একটি ফাইল তৈরি করুন।
  2. chat_app_auth.js ফাইলে নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:

    const chat = require('@googleapis/chat');
    
    async function createMessage() {
      const auth = new chat.auth.GoogleAuth({
    
        // Specify service account details.
        keyFilename: 'credentials.json',
    
        // Specify required scopes.
        scopes: ['https://www.googleapis.com/auth/chat.bot']
    
      });
      const authClient = await auth.getClient();
    
      // Create the Chat API client and authenticate with the service account.
      const chatClient = await chat.chat({
        version: 'v1',
        auth: authClient
      });
    
      // Create a Chat message.
      const result = await chatClient.spaces.messages.create({
    
        // The space to create the message in.
        //
        // Replace SPACE_NAME with a space name.
        // Obtain the space name from the spaces resource of Chat API,
        // or from a space's URL.
        parent: 'spaces/SPACE_NAME',
    
        // The message to create.
        requestBody: { 'text': 'Hello, world!' }
    
      });
      return result;
    }
    
    // Execute function then print details about the created message.
    createMessage().then(console.log);
    
  3. কোডে, SPACE_NAME এর জায়গায় একটি স্পেসের নাম বসান, যা আপনি Chat API-এর spaces.list মেথড থেকে অথবা স্পেসটির URL থেকে পেতে পারেন। নিশ্চিত করুন যে আপনার সার্ভিস অ্যাকাউন্টের প্রাইভেট কী ফাইলটির নাম credentials.json

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

  1. অ্যাপস স্ক্রিপ্ট এডিটরে, appsscript.json ফাইলটি সম্পাদনা করুন এবং সার্ভিস অ্যাকাউন্টের OAuth টোকেন পাওয়ার জন্য বাহ্যিক অনুরোধ করার জন্য প্রয়োজনীয় OAuth স্কোপ যোগ করুন:

      "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request"
      ]
    
  2. নিম্নলিখিত কোডটি আপনার অ্যাপস স্ক্রিপ্ট প্রজেক্টের ChatAppAuth.gs নামের ফাইলে সংরক্ষণ করুন:

    // Specify the contents of the file credentials.json.
    const CREDENTIALS = CREDENTIALS;
    
    const SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    
    // The space to create the message in.
    //
    // Replace SPACE_NAME with a space name.
    // Obtain the space name from the spaces resource of Chat API,
    // or from a space's URL.
    const PARENT = 'spaces/SPACE_NAME'
    
    /**
     * Authenticates with Chat API using app credentials, then posts a message.
     */
    function createMessageWithAppCredentials() {
      try {
        const service = getService_();
        if (!service.hasAccess()) {
          console.error(service.getLastError());
          return;
        }
    
        // Specify the message to create.
        const message = {'text': 'Hello world!'};
    
        // Call Chat API with a service account to create a message.
        const result = Chat.Spaces.Messages.create(
            message,
            PARENT,
            {},
            // Authenticate with the service account token.
            {'Authorization': 'Bearer ' + service.getAccessToken()});
    
        // Log details about the created message.
        console.log(result);
    
      } catch (err) {
        // TODO (developer) - Handle exception.
        console.log('Failed to create message with error %s', err.message);
      }
    }
    
    /**
     * Configures the OAuth library to authenticate with the service account.
     */
    function getService_() {
      return OAuth2.createService(CREDENTIALS.client_email)
          .setTokenUrl('https://oauth2.googleapis.com/token')
          .setPrivateKey(CREDENTIALS.private_key)
          .setIssuer(CREDENTIALS.client_email)
          .setSubject(CREDENTIALS.client_email)
          .setScope(SCOPE)
          .setPropertyStore(PropertiesService.getScriptProperties());
    }
    
  3. কোডে, CREDENTIALS জায়গায় credentials.json ফাইলের বিষয়বস্তু বসান।

  4. কোডে, SPACE_NAME এর জায়গায় একটি স্পেসের নাম বসান, যা আপনি Chat API-এর spaces.list মেথড থেকে অথবা কোনো স্পেসের URL থেকে পেতে পারেন।

ধাপ ৪: সম্পূর্ণ উদাহরণটি চালান

আপনার ওয়ার্কিং ডিরেক্টরিতে, স্যাম্পলটি বিল্ড ও রান করুন:

জাভা

mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar

পাইথন

python3 chat_app_auth.py

নোড.জেএস

node chat_app_auth.js

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

অ্যাপস স্ক্রিপ্ট এডিটরে ChatAppAuth.gs ফাইলটি খুলুন এবং রান-এ ক্লিক করুন।

আপনার স্ক্রিপ্ট চ্যাট এপিআই -তে একটি প্রমাণীকৃত অনুরোধ পাঠায়, যার জবাবে এপিআই একটি চ্যাট অ্যাপ হিসেবে চ্যাট স্পেসে একটি বার্তা পোস্ট করে।

উদাহরণটির সমস্যা সমাধান করুন

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

আপনাকে এই অ্যাপটি ব্যবহার করার অনুমতি দেওয়া হয়নি।

স্ক্রিপ্টটি চালানোর সময়, আপনি এই ধরনের একটি ত্রুটি বার্তা পেতে পারেন:

<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}/messages?alt=json returned "You are not permitted to use this app". Details: "You are not permitted to use this app">

এই ত্রুটি বার্তার অর্থ হলো, নির্দিষ্ট চ্যাট স্পেসে চ্যাট বার্তা তৈরি করার অনুমতি চ্যাট অ্যাপটির নেই।

ত্রুটিটি সমাধান করতে, স্ক্রিপ্টে নির্দিষ্ট করা চ্যাট স্পেসে চ্যাট অ্যাপটি যুক্ত করুন

এই কাজের জন্য প্রশাসককে অবশ্যই অ্যাপটিকে প্রয়োজনীয় OAuth অনুমোদনের পরিধি প্রদান করতে হবে।

স্ক্রিপ্টটি চালানোর সময়, আপনি এই ধরনের একটি ত্রুটি বার্তা পেতে পারেন:

<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}?alt=json returned "The administrator must grant the app the required OAuth authorization scope for this action.". Details: "The administrator must grant the app the required OAuth authorization scope for this action.">

এই ত্রুটি বার্তার অর্থ হলো, কোনো গুগল ওয়ার্কস্পেস প্রশাসক এখনও চ্যাট অ্যাপটিকে https://www.googleapis.com/auth/chat.app.* নামটি দিয়ে শুরু হওয়া অথরাইজেশন স্কোপগুলো ব্যবহার করার জন্য এককালীন অনুমোদন দেননি।

ত্রুটি সমাধান করতে:

  • আপনার চ্যাট অ্যাপের অনুমোদনের জন্য গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটরকে অনুরোধ করুন। আপনার চ্যাট অ্যাপের লজিকে এই ত্রুটিটি সমাধান করার সময়, একটি বার্তা পাঠানোর কথা বিবেচনা করুন যেখানে জানানো হবে যে অনুরোধ করা কাজটি করার জন্য চ্যাট অ্যাপটির অ্যাডমিনিস্ট্রেটরের অনুমোদন প্রয়োজন, যেমন: To perform this action, I need approval. <https://support.google.com/a?p=chat-app-auth|Learn more>.
  • যদি গুগল চ্যাট এপিআই মেথডটি https://www.googleapis.com/auth/chat.bot অথরাইজেশন স্কোপ সমর্থন করে, যার জন্য অ্যাডমিনিস্ট্রেটরের অনুমোদনের প্রয়োজন হয় না, তবে এর পরিবর্তে সেটি ব্যবহার করার কথা বিবেচনা করুন। কোনো মেথড কোন কোন অথরাইজেশন স্কোপ সমর্থন করে তা জানতে, গুগল চ্যাট এপিআই রেফারেন্স ডকুমেন্টেশন দেখুন।