OAuth ব্যবহার করুন

রুট অপ্টিমাইজেশান API প্রমাণীকরণের জন্য OAuth 2.0 ব্যবহার সমর্থন করে। Google সাধারণ OAuth 2.0 পরিস্থিতি সমর্থন করে যেমন একটি ওয়েব সার্ভারের জন্য।

এই নথিটি বর্ণনা করে যে কীভাবে আপনার ডেভেলপমেন্ট পরিবেশে রুট অপ্টিমাইজেশান এপিআই কলে একটি OAuth টোকেন পাস করতে হয়। উৎপাদন পরিবেশে OAuth ব্যবহার করার নির্দেশাবলীর জন্য, Google-এ প্রমাণীকরণ দেখুন।

তুমি শুরু করার আগে

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

OAuth সম্পর্কে

আপনার স্থাপনার পরিবেশের উপর ভিত্তি করে OAuth এর সাথে অ্যাক্সেস টোকেন তৈরি এবং পরিচালনা করার অনেক উপায় রয়েছে।

উদাহরণস্বরূপ, Google OAuth 2.0 সিস্টেম সার্ভার-টু-সার্ভার ইন্টারঅ্যাকশন সমর্থন করে, যেমন আপনার অ্যাপ্লিকেশন এবং একটি Google পরিষেবার মধ্যে। এই দৃশ্যের জন্য আপনার একটি পরিষেবা অ্যাকাউন্টের প্রয়োজন, যা একটি অ্যাকাউন্ট যা আপনার অ্যাপ্লিকেশনের অন্তর্গত একটি স্বতন্ত্র ব্যবহারকারীর পরিবর্তে। আপনার অ্যাপ্লিকেশন পরিষেবা অ্যাকাউন্টের হয়ে Google API-কে কল করে, তাই ব্যবহারকারীরা সরাসরি জড়িত নয়৷ প্রমাণীকরণ পদ্ধতি সম্পর্কে আরও তথ্যের জন্য, Google-এ প্রমাণীকরণ দেখুন।

বিকল্পভাবে, আপনি একটি Android বা iOS মোবাইল অ্যাপের অংশ হিসেবে রুট অপ্টিমাইজেশান API ব্যবহার করতে পারেন। বিভিন্ন স্থাপনার পরিবেশের জন্য অ্যাক্সেস টোকেন পরিচালনার তথ্য সহ রুট অপ্টিমাইজেশান API-এর সাথে OAuth ব্যবহার করার বিষয়ে সাধারণ তথ্যের জন্য, Google API অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করা দেখুন।

OAuth স্কোপ সম্পর্কে

রুট অপ্টিমাইজেশান API এর সাথে OAuth ব্যবহার করতে, OAuth টোকেনকে অবশ্যই সুযোগ বরাদ্দ করতে হবে:

  • https://www.googleapis.com/auth/cloud-platform

উদাহরণ: আপনার স্থানীয় উন্নয়ন পরিবেশে REST API কলগুলি ব্যবহার করে দেখুন

আপনি যদি একটি OAuth টোকেন ব্যবহার করে রুট অপ্টিমাইজেশান API ব্যবহার করে দেখতে চান, কিন্তু টোকেন তৈরি করার জন্য কোনও পরিবেশ সেটআপ না থাকলে, আপনি কল করার জন্য এই বিভাগে পদ্ধতিটি ব্যবহার করতে পারেন।

এই উদাহরণটি বর্ণনা করে যে কীভাবে কল করার জন্য অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) দ্বারা প্রদত্ত OAuth টোকেন ব্যবহার করতে হয়৷ ক্লায়েন্ট লাইব্রেরি ব্যবহার করে Google API কল করার জন্য ADC ব্যবহার সম্পর্কে তথ্যের জন্য, ক্লায়েন্ট লাইব্রেরি ব্যবহার করে প্রমাণীকরণ দেখুন।

পূর্বশর্ত

আপনি ADC ব্যবহার করে একটি REST অনুরোধ করার আগে, ADC-কে শংসাপত্র প্রদান করতে Google Cloud CLI ব্যবহার করুন:

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, একটি প্রকল্প তৈরি করুন এবং Google ক্লাউড কনসোলে সেট আপ করার ধাপগুলি অনুসরণ করে বিলিং সক্ষম করুন৷
  2. gcloud CLI ইনস্টল এবং আরম্ভ করুন
  3. আপনার শংসাপত্র ফাইল তৈরি করতে আপনার স্থানীয় মেশিনে নিম্নলিখিত gcloud কমান্ডটি চালান:

    gcloud auth application-default login
  4. একটি লগইন পর্দা প্রদর্শিত হয়. আপনি লগ ইন করার পরে, আপনার শংসাপত্রগুলি ADC দ্বারা ব্যবহৃত স্থানীয় শংসাপত্র ফাইলে সংরক্ষণ করা হয়।

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

একটি REST অনুরোধ করুন

এই উদাহরণে, আপনি দুটি অনুরোধ শিরোনাম পাস করুন:

  • টোকেন তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করে Authorization শিরোনামে OAuth টোকেনটি পাস করুন:

    gcloud auth application-default print-access-token

    প্রত্যাবর্তিত টোকেনের একটি সুযোগ রয়েছে https://www.googleapis.com/auth/cloud-platform.

  • অনুরোধের বডি কন্টেন্ট-টাইপ হল application/json উল্লেখ করুন।

নিম্নলিখিত উদাহরণটি একটি OAuth টোকেন ব্যবহার করে রুট অপ্টিমাইজেশান API এ একটি কল করে:

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

সমস্যা সমাধান

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