Node.js quickstart

একটি Node.js কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করুন যা গুগল চ্যাট এপিআই-তে অনুরোধ পাঠাতে পারে।

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

এই কুইকস্টার্টটি অথেনটিকেশন এবং অথরাইজেশন ফ্লো-এর কিছু খুঁটিনাটি বিষয় সামলানোর জন্য গুগল ওয়ার্কস্পেসের প্রস্তাবিত এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।

উদ্দেশ্য

  • আপনার পরিবেশ প্রস্তুত করুন।
  • ক্লায়েন্ট লাইব্রেরিটি ইনস্টল করুন।
  • নমুনাটি প্রস্তুত করুন।
  • নমুনাটি চালান।

পূর্বশর্ত

এই কুইকস্টার্টটি চালানোর জন্য আপনার নিম্নলিখিত পূর্বশর্তগুলো প্রয়োজন:

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

এই কুইকস্টার্টটি সম্পন্ন করতে, আপনার পরিবেশ সেট আপ করুন।

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

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

আপনি যদি এই কুইকস্টার্টটি সম্পন্ন করতে একটি নতুন গুগল ক্লাউড প্রজেক্ট ব্যবহার করেন, তাহলে OAuth কনসেন্ট স্ক্রিনটি কনফিগার করুন। যদি আপনি আপনার ক্লাউড প্রজেক্টের জন্য এই ধাপটি ইতিমধ্যেই সম্পন্ন করে থাকেন, তাহলে পরবর্তী বিভাগে চলে যান।

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

    ব্র্যান্ডিং-এ যান

  2. আপনি যদি ইতিমধ্যেই Google Auth প্ল্যাটফর্মটি কনফিগার করে থাকেন, তাহলে আপনি Branding , Audience , এবং Data Access- এ নিম্নলিখিত OAuth Consent Screen সেটিংস কনফিগার করতে পারেন। যদি আপনি এমন কোনো বার্তা দেখতে পান যেখানে লেখা আছে ‘Google Auth প্ল্যাটফর্ম এখনও কনফিগার করা হয়নি’ , তাহলে Get Started-এ ক্লিক করুন:
    1. 'অ্যাপ ইনফরমেশন'- এর অধীনে 'অ্যাপ নেম' -এ অ্যাপটির জন্য একটি নাম লিখুন।
    2. ব্যবহারকারী সহায়তা ইমেল- এ, এমন একটি সহায়তা ইমেল ঠিকানা বেছে নিন যেখানে ব্যবহারকারীরা তাদের সম্মতি সম্পর্কে কোনো প্রশ্ন থাকলে আপনার সাথে যোগাযোগ করতে পারে।
    3. পরবর্তী ধাপে যান।
    4. Audience-এর অধীনে Internal নির্বাচন করুন।
    5. পরবর্তী ধাপে যান।
    6. যোগাযোগের তথ্যের অধীনে, একটি ইমেল ঠিকানা লিখুন যেখানে আপনার প্রকল্পের যেকোনো পরিবর্তন সম্পর্কে আপনাকে জানানো যাবে।
    7. পরবর্তী ধাপে যান।
    8. Finish-এর অধীনে, Google API Services ব্যবহারকারীর ডেটা নীতি পর্যালোচনা করুন এবং যদি আপনি সম্মত হন, তাহলে I agree to the Google API Services: User Data Policy নির্বাচন করুন।
    9. চালিয়ে যান-এ ক্লিক করুন।
    10. তৈরি করুন- এ ক্লিক করুন।
  3. আপাতত, আপনি স্কোপ যোগ করা এড়িয়ে যেতে পারেন। ভবিষ্যতে, যখন আপনি আপনার Google Workspace অর্গানাইজেশনের বাইরে ব্যবহারের জন্য কোনো অ্যাপ তৈরি করবেন, তখন আপনাকে অবশ্যই ইউজার টাইপ (User type) পরিবর্তন করে ‘এক্সটার্নাল’ ( External ) করতে হবে। এরপর আপনার অ্যাপের জন্য প্রয়োজনীয় অথরাইজেশন স্কোপগুলো যোগ করুন। আরও জানতে, সম্পূর্ণ ‘কনফিগার OAuth কনসেন্ট’ (Configure OAuth consent) গাইডটি দেখুন।

একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য ক্রেডেনশিয়াল অনুমোদন করুন

আপনার অ্যাপে ব্যবহারকারীদের প্রমাণীকরণ করতে এবং তাদের ডেটা অ্যাক্সেস করতে, আপনাকে এক বা একাধিক OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করতে হবে। গুগলের OAuth সার্ভারের কাছে একটি একক অ্যাপকে শনাক্ত করতে ক্লায়েন্ট আইডি ব্যবহৃত হয়। যদি আপনার অ্যাপ একাধিক প্ল্যাটফর্মে চলে, তবে আপনাকে প্রতিটি প্ল্যাটফর্মের জন্য একটি পৃথক ক্লায়েন্ট আইডি তৈরি করতে হবে।
  1. Google API কনসোলে, > Google Auth প্ল্যাটফর্ম > ক্লায়েন্টস- এ যান।

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

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

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

  6. ডাউনলোড করা JSON ফাইলটি credentials.json নামে সংরক্ষণ করুন এবং ফাইলটি আপনার ওয়ার্কিং ডিরেক্টরিতে নিয়ে যান।

গুগল চ্যাট অ্যাপ কনফিগার করুন

গুগল চ্যাট এপিআই কল করার জন্য, আপনাকে একটি গুগল চ্যাট অ্যাপ কনফিগার করতে হবে। যেকোনো রাইট রিকোয়েস্টের ক্ষেত্রে, গুগল চ্যাট নিম্নলিখিত তথ্য ব্যবহার করে UI-তে গুগল চ্যাট অ্যাপটিকে অ্যাট্রিবিউট করে।

  1. Google API Console-এ, Chat API Configuration পেজে যান:

    চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান

  2. অ্যাপ্লিকেশন তথ্য (Application info) অংশে নিম্নলিখিত তথ্যগুলো প্রবেশ করান:

    1. অ্যাপের নামের ফিল্ডে Chat API quickstart app লিখুন।
    2. Avatar URL ফিল্ডে https://developers.google.com/chat/images/quickstart-app-avatar.png লিখুন।
    3. Description ফিল্ডে, Quickstart for calling the Chat API লিখুন।
  3. ইন্টারেক্টিভ ফিচারস- এর অধীনে, চ্যাট অ্যাপের ইন্টারেক্টিভ ফিচারগুলো নিষ্ক্রিয় করতে ‘Enable interactive features’ টগলটি অফ অবস্থানে ক্লিক করুন।

  4. সংরক্ষণ করুন- এ ক্লিক করুন।

ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

  • npm ব্যবহার করে লাইব্রেরিগুলো ইনস্টল করুন:

    npm install @google-apps/chat @google-cloud/local-auth@2.1.0 --save
    

নমুনাটি সেট আপ করুন

  1. আপনার ওয়ার্কিং ডিরেক্টরিতে index.js নামে একটি ফাইল তৈরি করুন।

  2. ফাইলটিতে নিম্নলিখিত কোডটি পেস্ট করুন:

    চ্যাট/কুইকস্টার্ট/ইনডেক্স.জেএস
    import path from 'node:path';
    import process from 'node:process';
    import {ChatServiceClient} from '@google-apps/chat';
    import {authenticate} from '@google-cloud/local-auth';
    
    // The scope for reading Chat spaces.
    const SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly'];
    // The path to the credentials file.
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Lists the spaces that the user is a member of.
     */
    async function listSpaces() {
      // Authenticate with Google and get an authorized client.
      const authClient = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
    
      // Create a new Chat API client.
      const chatClient = new ChatServiceClient({
        authClient,
        scopes: SCOPES,
      });
    
      // The request to list spaces.
      const request = {
        // Filter spaces by type. In this case, we are only interested in "SPACE" type.
        filter: 'space_type = "SPACE"',
      };
    
      // Make the API request.
      const pageResult = chatClient.listSpacesAsync(request);
    
      // Process the response.
      // The `pageResult` is an async iterable that will yield each space.
      for await (const response of pageResult) {
        console.log(response);
      }
    }
    
    await listSpaces();

নমুনাটি চালান

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

    node .
    
  1. আপনি যখন প্রথমবার নমুনাটি চালান, তখন এটি আপনাকে অ্যাক্সেসের অনুমতি দিতে অনুরোধ করে:
    1. আপনি যদি আগে থেকেই আপনার গুগল অ্যাকাউন্টে সাইন ইন না করে থাকেন, তাহলে অনুরোধ করা হলে সাইন ইন করুন। আপনি যদি একাধিক অ্যাকাউন্টে সাইন ইন করে থাকেন, তাহলে অনুমোদনের জন্য ব্যবহার করার জন্য একটি অ্যাকাউন্ট বেছে নিন।
    2. গ্রহণ করুন- এ ক্লিক করুন।

    আপনার Nodejs অ্যাপ্লিকেশনটি চালু হয় এবং Google Chat API-কে কল করে।

    অনুমোদনের তথ্য ফাইল সিস্টেমে সংরক্ষিত থাকে, তাই পরের বার আপনি নমুনা কোডটি চালালে আপনাকে অনুমোদনের জন্য অনুরোধ করা হবে না।

পরবর্তী পদক্ষেপ