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

- 114

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

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

এই নির্দেশিকায়, আপনি এবং 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 অ্যাকাউন্টগুলির একটি তালিকা সহ একটি প্রাথমিক চয়ন করুন স্ক্রীন উপস্থাপন করা হতে পারে৷ যদি তাই হয়, আপনি Device Accessএর জন্য অনুমোদন করতে চান এমন ডিভাইস(গুলি) এর সাথে আবদ্ধ Google অ্যাকাউন্টটি নির্বাচন করুন।
  3. Google Nest অনুমতির স্ক্রিনটি নিজেই PCM। এখানে আপনি কাঠামো এবং ডিভাইসের অনুমতি দিতে পারেন। আপনার বাড়ির (পদক্ষেপ 1) এবং SDM API (ধাপ 2) দ্বারা সমর্থিত সেই বাড়ির যে কোনও ডিভাইসের অনুমতিগুলি টগল করুন, তারপরে পরবর্তী ক্লিক করুন।
  4. প্রজেক্ট নেম স্ক্রিনে চালিয়ে যাওয়ার জন্য একটি অ্যাকাউন্ট চয়ন করুন , যেখানে প্রজেক্টের নাম আপনার Google ক্লাউড প্রকল্পের নাম, আপনি SDM API-এর জন্য অনুমোদন করতে চান এমন Google অ্যাকাউন্ট নির্বাচন করুন। আগের মতো একই Google অ্যাকাউন্ট ব্যবহার করুন।
  5. একটি অ্যাকাউন্ট বেছে নেওয়ার পরে, আপনি একটি সতর্কতা স্ক্রীন পেতে পারেন যা বলে যে Google এই অ্যাপটি যাচাই করেনি ৷ যদি তাই হয়, চালিয়ে যেতে, Advanced অপশনে ক্লিক করুন এবং তারপর Go to Project Name (অনিরাপদ) এ ক্লিক করুন। আরও তথ্যের জন্য দেখুন Google এই অ্যাপটি যাচাই করেনি
  6. গ্রান্ট প্রজেক্ট নেম পারমিশন স্ক্রীনে, আপনার Google অ্যাকাউন্ট অ্যাক্সেস করার জন্য প্রজেক্টকে অনুমতি দিতে অনুমতিতে ক্লিক করুন।
  7. আপনার পছন্দ নিশ্চিত করুন স্ক্রিনে, নিশ্চিত করুন যে আপনি অনুমতি দিতে চান তা চেক করা হয়েছে এবং নিশ্চিত করতে অনুমতিতে ক্লিক করুন।
  8. আপনাকে https://www.google.com-এ পুনঃনির্দেশিত করা উচিত৷ ইউআরএল-এর 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. Google OAuth দুটি টোকেন প্রদান করে, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।

    {
      "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 কল না করা পর্যন্ত অনুমোদন সম্পূর্ণ হয় না। এই প্রাথমিক কল অনুমোদন প্রক্রিয়া শেষ করে এবং আপনি যদি ইতিমধ্যে একটি পাব/সাবস্ক্রিপশন সেট আপ করে থাকেন তবে ইভেন্টগুলি সক্ষম করে৷

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-এর অ্যাক্সেস টোকেনগুলি শুধুমাত্র 1 ঘন্টার জন্য বৈধ, যেমনটি 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. Google OAuth একটি নতুন অ্যাক্সেস টোকেন প্রদান করে।

    {
      "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 ব্যবহার করা দেখুন।

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

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

অ্যাক্সেস অস্বীকার করা হয়েছে৷

আপনি যদি Google ক্লাউডে আপনার OAuth সম্মতি স্ক্রীন সেট আপ করে থাকেন এবং ব্যবহারকারীর ধরনটি বাহ্যিক হয়, তাহলে আপনি একটি "অ্যাক্সেস অস্বীকৃত" ত্রুটি পাবেন যদি আপনি এমন একটি Google অ্যাকাউন্টের সাথে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করেন যা আপনার অ্যাপের জন্য পরীক্ষামূলক ব্যবহারকারী হিসাবে তালিকাভুক্ত নয় . আপনার OAuth সম্মতি স্ক্রিনে পরীক্ষা ব্যবহারকারী বিভাগে Google অ্যাকাউন্ট যোগ করার বিষয়টি নিশ্চিত করুন।

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

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

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

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

অনুমোদন প্রক্রিয়া চলাকালীন আপনি একটি "Google এই অ্যাপটি যাচাই করেনি" স্ক্রীন দেখতে পেতে পারেন, যা Google ক্লাউডে আপনার OAuth সম্মতি স্ক্রীনে sdm.service স্কোপ কনফিগার না করা থাকলে দেখা যায়। অ্যাডভান্সড বিকল্পে ক্লিক করে এবং তারপরে প্রকল্পের নামে যান (অনিরাপদ) ক্লিক করে এই স্ক্রীনটি বাইপাস করা যেতে পারে।

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

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

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

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

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

রিডাইরেক্ট ইউরি অমিল

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

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

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

https://nestservices.google.com/partnerconnections

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

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

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

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

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

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

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

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 প্রমাণীকরণ কোড

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

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

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

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

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

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

Google OAuth দুটি টোকেন প্রদান করে, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।

অনুরোধ

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"
}

4 API কল

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

অনুমোদন সম্পূর্ণ করার জন্য আপনাকে নির্দিষ্ট সুযোগের জন্য তালিকাভুক্ত 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'

5 রিফ্রেশ টোকেন

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

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

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

Google OAuth একটি নতুন অ্যাক্সেস টোকেন প্রদান করে।

অনুরোধ

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"
}