একটি অ্যাকাউন্ট অনুমোদন করুন

আপনার Google ক্লাউড এবং ডিভাইস অ্যাক্সেস প্রোজেক্ট তৈরি করে, আপনি SDM API-এর জন্য একটি সমর্থিত Google Nest ডিভাইস সহ একটি Google অ্যাকাউন্ট অনুমোদন করতে পারেন।

কাঠামো এবং ডিভাইসগুলি দেখতে, আপনাকে অবশ্যই আপনার সাথে একটি Google অ্যাকাউন্ট লিঙ্ক করতে হবেDevice Access পিসিএম ব্যবহার করে প্রকল্প। পিসিএম অনুমতি দেয় user অনুমতি প্রদান করা developerতাদের কাঠামো এবং ডিভাইস ডেটা অ্যাক্সেস করার জন্য।

এই নির্দেশিকায়, আপনি উভয়েরই ভূমিকা পালন করেন user এবং developer.

  1. নিম্নলিখিত লিঙ্কটি একটি ওয়েব ব্রাউজারে খুলুন, প্রতিস্থাপন করুন:

    1. project-id তোমার সাথে পরিচয় Device Access Project আইডি
    2. আপনার Google ক্লাউড ক্রেডেনশিয়াল থেকে OAuth2 ক্লায়েন্ট আইডি সহ oauth2-client-id
    https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com&access_type=offline&prompt=consent&client_id=oauth2-client-id&response_type=code&scope=https://www.googleapis.com/auth/sdm.service
    
  2. যদি আপনি সম্প্রতি একাধিক অ্যাকাউন্ট দিয়ে Google-এ সাইন ইন করে থাকেন, তাহলে আপনার Google অ্যাকাউন্টের তালিকা সহ একটি প্রাথমিক অ্যাকাউন্ট নির্বাচন করুন স্ক্রিন আপনাকে উপস্থাপন করা হতে পারে। যদি তাই হয়, তাহলে আপনি যে ডিভাইস(গুলি) এর জন্য অনুমোদন দিতে চান তার সাথে সংযুক্ত Google অ্যাকাউন্টটি নির্বাচন করুন। Device Access.
  3. Google Nest অনুমতি স্ক্রিনটি নিজেই PCM। এখানে আপনি কাঠামো এবং ডিভাইসের অনুমতি দিতে পারেন। আপনার বাড়ির জন্য অনুমতিগুলি (ধাপ ১) এবং সেই বাড়ির যে কোনও ডিভাইস যা SDM API (ধাপ ২) দ্বারা সমর্থিত, টগল করুন, তারপর Next এ ক্লিক করুন।
  4. "প্রজেক্ট নেম" স্ক্রিনে "একটি অ্যাকাউন্ট বেছে নিন" যেখানে "প্রজেক্ট নেম" হল আপনার গুগল ক্লাউড প্রোজেক্টের নাম, সেখানে SDM API-এর জন্য আপনি যে গুগল অ্যাকাউন্টটি অনুমোদন করতে চান তা নির্বাচন করুন। আগের মতোই একই গুগল অ্যাকাউন্ট ব্যবহার করুন।
  5. একটি অ্যাকাউন্ট বেছে নেওয়ার পরে, আপনি একটি সতর্কতা স্ক্রিন দেখতে পাবেন যেখানে বলা হবে যে Google এই অ্যাপটি যাচাই করেনি । যদি তাই হয়, তাহলে চালিয়ে যেতে, উন্নত বিকল্পে ক্লিক করুন এবং তারপরে Go to Project Name (unsafe) এ ক্লিক করুন। আরও তথ্যের জন্য Google এই অ্যাপটি যাচাই করেনি দেখুন।
  6. প্রকল্পের নাম অনুমোদনের স্ক্রিনে, প্রকল্পটিকে আপনার গুগল অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দিতে অনুমতি দিন ক্লিক করুন।
  7. আপনার পছন্দগুলি নিশ্চিত করুন স্ক্রিনে, আপনি যে অনুমতিগুলি দিতে চান তা চেক করা আছে কিনা তা নিশ্চিত করুন এবং নিশ্চিত করতে অনুমতি দিন ক্লিক করুন।
  8. আপনাকে https://www.google.com এ পুনঃনির্দেশিত করা উচিত। অনুমোদন কোডটি URL-এ code প্যারামিটার হিসাবে ফেরত পাঠানো হবে, যা এই ফর্ম্যাটে হওয়া উচিত:

    https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service
    
  9. অনুমোদন কোডটি কপি করুন।

একটি অ্যাক্সেস টোকেন পান

SDM API কল করার জন্য আপনি যে অ্যাক্সেস টোকেনটি ব্যবহার করতে পারেন, তা পুনরুদ্ধার করতে অনুমোদন কোডটি ব্যবহার করুন।

  1. একটি টার্মিনাল খুলুন এবং নিম্নলিখিত curl কমান্ডটি চালান, প্রতিস্থাপন করুন:

    1. আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
    2. পূর্ববর্তী ধাপে আপনি যে কোডটি পেয়েছেন তার সাথে authorization-code
    curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'
  2. গুগল ওঅথ দুটি টোকেন ফেরত দেয়, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।

    {
      "access_token": "access-token",
      "expires_in": 3599,
      "refresh_token": "refresh-token",
      "scope": "https://www.googleapis.com/auth/sdm.service",
      "token_type": "Bearer"
    }
    এই দুটি মানই কপি করুন। অ্যাক্সেস টোকেনটি SDM API কল করতে ব্যবহৃত হয় এবং রিফ্রেশ টোকেনটি একটি নতুন অ্যাক্সেস টোকেন পেতে ব্যবহৃত হয়।

ডিভাইস তালিকার জন্য একটি কল করুন

আপনার নতুন অ্যাক্সেস টোকেন ব্যবহার করে প্রথম devices.list কল না করা পর্যন্ত অনুমোদন সম্পূর্ণ হয় না। এই প্রাথমিক কলটি অনুমোদন প্রক্রিয়াটি সম্পন্ন করে এবং যদি আপনি ইতিমধ্যেই একটি Pub/Sub সাবস্ক্রিপশন সেট আপ করে থাকেন তবে ইভেন্টগুলি সক্ষম করে।

devices এন্ডপয়েন্টের জন্য এই কলটি করতে curl ব্যবহার করুন:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

একটি সফল কল আপনার সাথে লিঙ্ক করা ডিভাইসের একটি তালিকা ফেরত দেয় Device Accessপ্রকল্প। প্রতিটি ডিভাইসের নিজস্ব অনন্য বৈশিষ্ট্যের তালিকা রয়েছে:

{
  "devices": [
    {
      "name": "enterprises/project-id/devices/device-id",
      "type": "sdm.devices.types.device-type",
      "traits": { ... },
      "parentRelations": [
        {
          "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
          "displayName": "device-room-name"
        }
      ]
    }
  ]
}

রিফ্রেশ টোকেন কীভাবে ব্যবহার করবেন

SDM API-এর অ্যাক্সেস টোকেনগুলি শুধুমাত্র ১ ঘন্টার জন্য বৈধ, যেমনটি Google OAuth দ্বারা ফেরত দেওয়া expires_in প্যারামিটারে উল্লেখ করা হয়েছে। যদি আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যায়, তাহলে নতুন একটি পেতে রিফ্রেশ টোকেন ব্যবহার করুন।

কমান্ডটি অ্যাক্সেস টোকেনের মতোই, তবে আপনি যদি অন্য একটি grant_type ব্যবহার করেন তবে।

  1. একটি টার্মিনাল খুলুন এবং নিম্নলিখিত curl কমান্ডটি চালান, প্রতিস্থাপন করুন:

    1. আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
    2. প্রাথমিকভাবে অ্যাক্সেস টোকেন পাওয়ার সময় আপনি যে কোডটি পেয়েছিলেন তা দিয়ে refresh-token
    curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'
  2. গুগল ওঅথ একটি নতুন অ্যাক্সেস টোকেন ফেরত দেয়।

    {
      "access_token": "new-access-token",
      "expires_in": 3599,
      "scope": "https://www.googleapis.com/auth/sdm.service",
      "token_type": "Bearer"
    }

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

Google OAuth সম্পর্কে আরও জানতে, Google API গুলি অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করা দেখুন।

রিফ্রেশ টোকেনের মেয়াদ বারবার শেষ হচ্ছে

ক্লায়েন্ট আইডি অনুমোদিত না হলে রিফ্রেশ টোকেন ৭ দিন পরে কাজ করা বন্ধ করে দিতে পারে, এটি একটি সম্ভাব্য কারণ। ৭ দিনের টোকেনের মেয়াদ কমার্শিয়াল বা স্যান্ডবক্স অনুমোদনের সাথে সম্পর্কিত নয়। দীর্ঘ টোকেন লাইফ পেতে একটি পরিষেবা বা ব্যবহারকারী অ্যাকাউন্টকে তাদের OAuth 2.0 ক্লায়েন্ট আইডি অনুমোদন করতে হবে এবং উৎপাদনে রাখতে হবে। আরও তথ্যের জন্য রিফ্রেশ টোকেনের মেয়াদ শেষ দেখুন।

অ্যাক্সেস অস্বীকৃত

যদি আপনি Google Cloud-এ আপনার OAuth সম্মতি স্ক্রিন সেট আপ করে থাকেন এবং ব্যবহারকারীর ধরণটি External হয়, তাহলে আপনার অ্যাপের জন্য পরীক্ষামূলক ব্যবহারকারী হিসাবে তালিকাভুক্ত নয় এমন কোনও Google অ্যাকাউন্টের সাথে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করলে "অ্যাক্সেস অস্বীকার করা হয়েছে" ত্রুটি দেখাবে। আপনার OAuth সম্মতি স্ক্রিনের পরীক্ষামূলক ব্যবহারকারী বিভাগে Google অ্যাকাউন্টটি যোগ করতে ভুলবেন না।

পার্টনার কানেকশন ম্যানেজার (PCM) ত্রুটি

PCM অ্যাক্সেস করার সময় যে কোনও ত্রুটির সম্মুখীন হলে সাহায্যের জন্য, পার্টনার কানেকশন ম্যানেজার (PCM) ত্রুটি রেফারেন্স দেখুন।

Google এই অ্যাপটি যাচাই করেনি

SDM API একটি সীমাবদ্ধ স্কোপ ব্যবহার করে, যার অর্থ হল অনুমোদনের সময় এই স্কোপ ব্যবহার করা যেকোনো অ্যাপ "অযাচাইকৃত" থাকবে যদি না OAuth API যাচাইকরণ সম্পন্ন হয়। ব্যবহার করার সময় Device Access ব্যক্তিগত ব্যবহারের জন্য, OAuth API যাচাইকরণের প্রয়োজন নেই।

অনুমোদন প্রক্রিয়া চলাকালীন আপনি "Google hasn't verified this app" স্ক্রিন দেখতে পাবেন, যা Google Cloud-এ আপনার OAuth সম্মতি স্ক্রিনে sdm.service স্কোপ কনফিগার না করা থাকলে প্রদর্শিত হবে। এই স্ক্রিনটি Advanced বিকল্পে ক্লিক করে এবং তারপর Go to Project Name (unsafe) ক্লিক করে বাইপাস করা যেতে পারে।

আরও তথ্যের জন্য যাচাই না করা অ্যাপ স্ক্রিন দেখুন।

অবৈধ ক্লায়েন্ট

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

অবৈধ অনুরোধ, প্রয়োজনীয় সুযোগ অনুপস্থিত

PCM-এ অনুমতি দেওয়ার পরে, আপনি "অবৈধ অনুরোধ" ত্রুটির সম্মুখীন হতে পারেন যেমন "প্রয়োজনীয় প্যারামিটার মিসিং: স্কোপ"। নিশ্চিত করুন যে অনুমোদন কলে আপনি scope মান ব্যবহার করছেন তা আপনার Google ক্লাউড ক্রেডেনশিয়াল পৃষ্ঠায় পাওয়া OAuth 2.0 ক্লায়েন্টের জন্য সেট করা মানটির সাথে একই।

ইউআরআই অমিল পুনর্নির্দেশ করুন

অনুমোদনের সময়, আপনি "Redirect uri mismatch" ত্রুটির সম্মুখীন হতে পারেন। নিশ্চিত করুন যে অনুমোদন কলে আপনি যে redirect_uri মানটি ব্যবহার করছেন তা আপনার Google Cloud Credentials পৃষ্ঠায় পাওয়া OAuth 2.0 ক্লায়েন্টের জন্য সেট করা মানটির সাথে একই।

অ্যাকাউন্টের অনুমতি পরিবর্তন করুন

একটিকে প্রদত্ত অনুমতিগুলি পরিবর্তন করতে Device Access প্রকল্প, অথবা সম্পূর্ণরূপে সংযোগ বিচ্ছিন্ন করুন, PCM-এ যান:

https://nestservices.google.com/partnerconnections

এই পৃষ্ঠাটি সমস্ত তৃতীয় পক্ষের বিকাশকারী পরিষেবা প্রদর্শন করে (Device Access (প্রজেক্ট) আপনার অ্যাকাউন্টের সাথে সংযুক্ত। নির্বাচন করুন Device Access আপনি যে প্রকল্পটি পরিবর্তন করতে চান। ইচ্ছামত অনুমতি পরিবর্তন করতে পরবর্তী স্ক্রিনটি ব্যবহার করুন।

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

কোনও অনুমোদিত পরিষেবা সম্পূর্ণরূপে সংযোগ বিচ্ছিন্ন করতে , অ্যাকাউন্টের জন্য প্রকল্পের দেওয়া সমস্ত অনুমতি এবং অ্যাক্সেস টোকেন প্রত্যাহার করতে আপনার Google অ্যাকাউন্ট আনলিঙ্ক করুন ক্লিক করুন।

যদি PCM পছন্দসই পরিষেবা না দেখায়, তাহলে আপনাকে প্রথমে একটি ডিভাইস তালিকা কল করতে হতে পারে।

দ্রুত রেফারেন্স

অনুমোদনের পদক্ষেপগুলি দ্রুত বাস্তবায়ন করতে এই রেফারেন্সটি ব্যবহার করুনuser এবং তাদের গুগল অ্যাকাউন্ট লিঙ্ক করুন।

এই দ্রুত রেফারেন্সটি ব্যবহার করতে, কোড নমুনার প্রতিটি প্লেসহোল্ডার ভেরিয়েবল আপনার নির্দিষ্ট ইন্টিগ্রেশনের মান সহ সম্পাদনা করুন এবং প্রয়োজন অনুসারে কপি এবং পেস্ট করুন:

১ পিসিএম

নিম্নলিখিত লিঙ্কটি একটি ওয়েব ব্রাউজারে খুলুন, প্রতিস্থাপন করুন:

  1. project-id তোমার সাথে পরিচয় Device Access Project আইডি
  2. আপনার Google ক্লাউড ক্রেডেনশিয়াল থেকে OAuth2 ক্লায়েন্ট আইডি সহ oauth2-client-id
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com&access_type=offline&prompt=consent&client_id=oauth2-client-id&response_type=code&scope=https://www.googleapis.com/auth/sdm.service

২ অনুমোদন কোড

আপনাকে https://www.google.com এ পুনঃনির্দেশিত করা উচিত। অনুমোদন কোডটি URL-এ code প্যারামিটার হিসাবে ফেরত পাঠানো হবে, যা এই ফর্ম্যাটে হওয়া উচিত:

https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service

৩ অ্যাক্সেস টোকেন

SDM API কল করার জন্য আপনি যে অ্যাক্সেস টোকেনটি ব্যবহার করতে পারেন, তা পুনরুদ্ধার করতে অনুমোদন কোডটি ব্যবহার করুন।

একটি টার্মিনাল খুলুন এবং নিম্নলিখিত curl কমান্ডটি চালান, প্রতিস্থাপন করুন:

  1. আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
  2. পূর্ববর্তী ধাপে আপনি যে কোডটি পেয়েছেন তার সাথে authorization-code

গুগল ওঅথ দুটি টোকেন ফেরত দেয়, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।

অনুরোধ

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'

প্রতিক্রিয়া

{
  "access_token": "access-token",
  "expires_in": 3599,
  "refresh_token": "refresh-token",
  "scope": "https://www.googleapis.com/auth/sdm.service",
  "token_type": "Bearer"
}

৪ এপিআই কল

আপনার নতুন অ্যাক্সেস টোকেন ব্যবহার করে প্রথম devices.list কল না করা পর্যন্ত অনুমোদন সম্পূর্ণ হয় না। এই প্রাথমিক কলটি অনুমোদন প্রক্রিয়াটি সম্পন্ন করে এবং যদি আপনি ইতিমধ্যেই একটি Pub/Sub সাবস্ক্রিপশন সেট আপ করে থাকেন তবে ইভেন্টগুলি সক্ষম করে।

অনুমোদন সম্পূর্ণ করার জন্য আপনাকে নির্দিষ্ট স্কোপের জন্য তালিকাভুক্ত API কলগুলির মধ্যে একটি ব্যবহার করতে হবে

sdm.service সম্পর্কে

ডিভাইস

আরও তথ্যের জন্য devices.list API রেফারেন্স দেখুন।

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

৫ টোকেন রিফ্রেশ করুন

SDM API-এর অ্যাক্সেস টোকেনগুলি শুধুমাত্র ১ ঘন্টার জন্য বৈধ, যেমনটি Google OAuth দ্বারা ফেরত দেওয়া expires_in প্যারামিটারে উল্লেখ করা হয়েছে। যদি আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে যায়, তাহলে নতুন একটি পেতে রিফ্রেশ টোকেন ব্যবহার করুন।

একটি টার্মিনাল খুলুন এবং নিম্নলিখিত curl কমান্ডটি চালান, প্রতিস্থাপন করুন:

  1. আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
  2. প্রাথমিকভাবে অ্যাক্সেস টোকেন পাওয়ার সময় আপনি যে কোডটি পেয়েছিলেন তা দিয়ে refresh-token

গুগল ওঅথ একটি নতুন অ্যাক্সেস টোকেন ফেরত দেয়।

অনুরোধ

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'

প্রতিক্রিয়া

{
  "access_token": "new-access-token",
  "expires_in": 3599,
  "scope": "https://www.googleapis.com/auth/sdm.service",
  "token_type": "Bearer"
}