আপনার Google ক্লাউড এবং ডিভাইস অ্যাক্সেস প্রকল্প তৈরি করে, আপনি SDM API-এর জন্য সমর্থিত Google Nest ডিভাইস সহ একটি Google অ্যাকাউন্ট অনুমোদন করতে পারেন।
আপনার অ্যাকাউন্ট লিঙ্ক করুন
কাঠামো এবং ডিভাইসগুলি দেখতে, আপনাকে অবশ্যই আপনার সাথে একটি Google অ্যাকাউন্ট লিঙ্ক করতে হবেDevice Access PCM ব্যবহার করে প্রকল্প। PCM অনুমতি দেয় user অনুমতি দেওয়ার অনুমতি দিতে developers তাদের কাঠামো এবং ডিভাইস ডেটা অ্যাক্সেস করতে।
এই নির্দেশিকা, আপনি উভয় হিসাবে পরিবেশন user এবং developer.
একটি ওয়েব ব্রাউজারে নিম্নলিখিত লিঙ্কটি খুলুন, প্রতিস্থাপন করুন:
- project-id - আপনার সাথে project-id Device Access Project আইডি
- আপনার 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 - আপনি যদি সম্প্রতি একাধিক অ্যাকাউন্ট দিয়ে Google-এ সাইন ইন করে থাকেন, তাহলে আপনাকে আপনার Google অ্যাকাউন্টগুলির একটি তালিকা সহ একটি প্রাথমিক চয়ন করুন স্ক্রীন উপস্থাপন করা হতে পারে৷ যদি তাই হয়, আপনি যে ডিভাইসটির জন্য অনুমোদন করতে চান তার সাথে সংযুক্ত Google অ্যাকাউন্টটি নির্বাচন করুন৷ Device Access.
- Google Nest অনুমতির স্ক্রিনটি নিজেই PCM। এখানে আপনি কাঠামো এবং ডিভাইসের অনুমতি দিতে পারেন। আপনার বাড়ির (পদক্ষেপ 1) এবং SDM API (ধাপ 2) দ্বারা সমর্থিত সেই বাড়ির যে কোনও ডিভাইসের অনুমতিগুলি টগল করুন, তারপরে পরবর্তী ক্লিক করুন।
- প্রজেক্ট নেম স্ক্রিনে চালিয়ে যাওয়ার জন্য একটি অ্যাকাউন্ট চয়ন করুন , যেখানে প্রজেক্টের নাম আপনার Google ক্লাউড প্রকল্পের নাম, আপনি SDM API-এর জন্য অনুমোদন করতে চান এমন Google অ্যাকাউন্ট নির্বাচন করুন। আগের মতো একই Google অ্যাকাউন্ট ব্যবহার করুন।
- একটি অ্যাকাউন্ট বেছে নেওয়ার পরে, আপনি একটি সতর্কতা স্ক্রীন পেতে পারেন যা বলে যে Google এই অ্যাপটি যাচাই করেনি ৷ যদি তাই হয়, চালিয়ে যেতে, Advanced অপশনে ক্লিক করুন এবং তারপর Go to Project Name (অনিরাপদ) এ ক্লিক করুন। আরও তথ্যের জন্য দেখুন Google এই অ্যাপটি যাচাই করেনি ।
- গ্রান্ট প্রজেক্ট নেম পারমিশন স্ক্রীনে, আপনার Google অ্যাকাউন্ট অ্যাক্সেস করার জন্য প্রজেক্টকে অনুমতি দিতে অনুমতিতে ক্লিক করুন।
- আপনার পছন্দ নিশ্চিত করুন স্ক্রিনে, নিশ্চিত করুন যে আপনি অনুমতি দিতে চান তা চেক করা হয়েছে এবং নিশ্চিত করতে অনুমতিতে ক্লিক করুন।
আপনাকে https://www.google.com-এ পুনঃনির্দেশিত করা উচিত৷ ইউআরএল-এর
code
প্যারামিটার হিসাবে অনুমোদন কোডটি ফেরত দেওয়া হয়, যা এই ফর্ম্যাটে হওয়া উচিত:https://www.google.com?code=authorization-code&
scope=https://www.googleapis.com/auth/sdm.service - অনুমোদন কোড কপি করুন.
একটি অ্যাক্সেস টোকেন পান
একটি অ্যাক্সেস টোকেন পুনরুদ্ধার করতে অনুমোদন কোড ব্যবহার করুন, যা আপনি SDM API কল করতে ব্যবহার করতে পারেন।
একটি টার্মিনাল খুলুন এবং প্রতিস্থাপন করে নিম্নলিখিত
curl
কমান্ডটি চালান:- আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট সহ oauth2-client-id এবং oauth2-client-secret
- আগের ধাপে আপনি যে কোডটি পেয়েছেন তার সাথে 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' Google OAuth দুটি টোকেন প্রদান করে, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।
এই দুটি মান অনুলিপি করুন। অ্যাক্সেস টোকেনটি 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
ব্যবহার করেন।
একটি টার্মিনাল খুলুন এবং প্রতিস্থাপন করে নিম্নলিখিত
curl
কমান্ডটি চালান:- আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট সহ oauth2-client-id এবং oauth2-client-secret
- প্রাথমিকভাবে অ্যাক্সেস টোকেন পাওয়ার সময় আপনি যে কোডটি পেয়েছিলেন তার সাথে 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' Google OAuth একটি নতুন অ্যাক্সেস টোকেন প্রদান করে।
{
সমস্যা সমাধান
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 পছন্দসই পরিষেবা না দেখালে, আপনাকে প্রথমে একটি ডিভাইস তালিকা কল করতে হতে পারে।
দ্রুত রেফারেন্স
অনুমোদন করার পদক্ষেপগুলি দ্রুত বাস্তবায়ন করতে এই রেফারেন্সটি ব্যবহার করুনuser এবং তাদের Google অ্যাকাউন্ট লিঙ্ক করুন।
এই দ্রুত রেফারেন্সটি ব্যবহার করতে, আপনার নির্দিষ্ট ইন্টিগ্রেশনের জন্য মান সহ কোড নমুনাগুলিতে প্রতিটি স্থানধারক ভেরিয়েবল সম্পাদনা করুন এবং প্রয়োজন অনুসারে অনুলিপি এবং পেস্ট করুন:
1 পিসিএম
একটি ওয়েব ব্রাউজারে নিম্নলিখিত লিঙ্কটি খুলুন, প্রতিস্থাপন করুন:
- project-id - আপনার সাথে project-id Device Access Project আইডি
- আপনার 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
কমান্ডটি চালান:
- আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট সহ oauth2-client-id এবং oauth2-client-secret
- আগের ধাপে আপনি যে কোডটি পেয়েছেন তার সাথে 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
কমান্ডটি চালান:
- আপনার Google ক্লাউড শংসাপত্র থেকে OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট সহ oauth2-client-id এবং oauth2-client-secret
- প্রাথমিকভাবে অ্যাক্সেস টোকেন পাওয়ার সময় আপনি যে কোডটি পেয়েছিলেন তার সাথে 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" }