Node.js quickstart

কুইকস্টার্ট ব্যাখ্যা করে যে কীভাবে একটি অ্যাপ সেট আপ করতে হয় এবং চালাতে হয় যেটি একটি Google Workspace API কল করে।

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

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

উদ্দেশ্য

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

পূর্বশর্ত

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

  • API অ্যাক্সেস সক্ষম সহ একটি Google Workspace ডোমেন।
  • প্রশাসকের বিশেষাধিকার সহ সেই ডোমেনে একটি Google অ্যাকাউন্ট।

আপনার পরিবেশ সেট আপ করুন

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

API সক্ষম করুন

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

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

  1. Google ক্লাউড কনসোলে, মেনু > API এবং পরিষেবা > OAuth সম্মতি স্ক্রীনে যান।

    OAuth সম্মতি স্ক্রিনে যান

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

  5. আপনার অ্যাপ নিবন্ধন সারাংশ পর্যালোচনা করুন. পরিবর্তন করতে, সম্পাদনা ক্লিক করুন। অ্যাপ নিবন্ধন ঠিক আছে বলে মনে হলে, ড্যাশবোর্ডে ফিরে যান ক্লিক করুন।

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

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

    শংসাপত্রে যান

  2. ক্রিয়েট ক্রেডেনশিয়াল > OAuth ক্লায়েন্ট আইডি ক্লিক করুন।
  3. Application type > Desktop app এ ক্লিক করুন।
  4. নাম ক্ষেত্রে, শংসাপত্রের জন্য একটি নাম টাইপ করুন। এই নামটি শুধুমাত্র Google ক্লাউড কনসোলে দেখানো হয়।
  5. তৈরি করুন ক্লিক করুন। OAuth ক্লায়েন্ট তৈরি করা স্ক্রীন প্রদর্শিত হবে, আপনার নতুন ক্লায়েন্ট আইডি এবং ক্লায়েন্টের গোপনীয়তা দেখাচ্ছে।
  6. ওকে ক্লিক করুন। নতুন তৈরি শংসাপত্রটি OAuth 2.0 ক্লায়েন্ট আইডিগুলির অধীনে প্রদর্শিত হয়৷
  7. ডাউনলোড করা JSON ফাইলটিকে credentials.json হিসাবে সংরক্ষণ করুন এবং ফাইলটিকে আপনার কার্যকারী ডিরেক্টরিতে সরান৷

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

  • এনপিএম ব্যবহার করে লাইব্রেরি ইনস্টল করুন:

    npm install googleapis@105 @google-cloud/local-auth@2.1.0 --save
    

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

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

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

    people/quickstart/index.js
    const fs = require('fs').promises;
    const path = require('path');
    const process = require('process');
    const {authenticate} = require('@google-cloud/local-auth');
    const {google} = require('googleapis');
    
    // If modifying these scopes, delete token.json.
    const SCOPES = ['https://www.googleapis.com/auth/contacts.readonly'];
    // The file token.json stores the user's access and refresh tokens, and is
    // created automatically when the authorization flow completes for the first
    // time.
    const TOKEN_PATH = path.join(process.cwd(), 'token.json');
    const CREDENTIALS_PATH = path.join(process.cwd(), 'credentials.json');
    
    /**
     * Reads previously authorized credentials from the save file.
     *
     * @return {Promise<OAuth2Client|null>}
     */
    async function loadSavedCredentialsIfExist() {
      try {
        const content = await fs.readFile(TOKEN_PATH);
        const credentials = JSON.parse(content);
        return google.auth.fromJSON(credentials);
      } catch (err) {
        return null;
      }
    }
    
    /**
     * Serializes credentials to a file compatible with GoogleAuth.fromJSON.
     *
     * @param {OAuth2Client} client
     * @return {Promise<void>}
     */
    async function saveCredentials(client) {
      const content = await fs.readFile(CREDENTIALS_PATH);
      const keys = JSON.parse(content);
      const key = keys.installed || keys.web;
      const payload = JSON.stringify({
        type: 'authorized_user',
        client_id: key.client_id,
        client_secret: key.client_secret,
        refresh_token: client.credentials.refresh_token,
      });
      await fs.writeFile(TOKEN_PATH, payload);
    }
    
    /**
     * Load or request or authorization to call APIs.
     *
     */
    async function authorize() {
      let client = await loadSavedCredentialsIfExist();
      if (client) {
        return client;
      }
      client = await authenticate({
        scopes: SCOPES,
        keyfilePath: CREDENTIALS_PATH,
      });
      if (client.credentials) {
        await saveCredentials(client);
      }
      return client;
    }
    
    /**
     * Print the display name if available for 10 connections.
     *
     * @param {google.auth.OAuth2} auth An authorized OAuth2 client.
     */
    async function listConnectionNames(auth) {
      const service = google.people({version: 'v1', auth});
      const res = await service.people.connections.list({
        resourceName: 'people/me',
        pageSize: 10,
        personFields: 'names,emailAddresses',
      });
      const connections = res.data.connections;
      if (!connections || connections.length === 0) {
        console.log('No connections found.');
        return;
      }
      console.log('Connections:');
      connections.forEach((person) => {
        if (person.names && person.names.length > 0) {
          console.log(person.names[0].displayName);
        } else {
          console.log('No display name found for connection.');
        }
      });
    }
    
    authorize().then(listConnectionNames).catch(console.error);

নমুনা চালান

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

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

    আপনার Nodejs অ্যাপ্লিকেশন রান করে এবং পিপল এপিআইকে কল করে।

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

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