আপনার গুগল ক্লাউড এবং ডিভাইস অ্যাক্সেস প্রজেক্ট তৈরি হয়ে গেলে, আপনি এসডিএম এপিআই (SDM API)-এর জন্য একটি সমর্থিত গুগল নেস্ট ডিভাইসের সাথে একটি গুগল অ্যাকাউন্ট অনুমোদন করতে পারবেন।
আপনার অ্যাকাউন্ট লিঙ্ক করুন
কাঠামো এবং ডিভাইসগুলি দেখতে হলে, আপনাকে আপনার Google অ্যাকাউন্টের সাথে একটি লিঙ্ক করতে হবে।Device Access PCM ব্যবহার করে প্রকল্পটি। PCM অনুমতি দেয় user অনুমতি প্রদান করা developerতাদের কাঠামো এবং ডিভাইসের ডেটা অ্যাক্সেস করার জন্য।
এই নির্দেশিকায়, আপনি উভয় ভূমিকাই পালন করেন user এবং developer.
একটি ওয়েব ব্রাউজারে নিম্নলিখিত লিঙ্কটি খুলুন এবং প্রতিস্থাপন করুন:
- project-id আপনার project-id সহ Device Access Project আইডি
- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত 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 - আপনি যদি সম্প্রতি একাধিক অ্যাকাউন্ট দিয়ে গুগলে সাইন ইন করে থাকেন, তাহলে আপনার সামনে প্রাথমিকভাবে 'একটি অ্যাকাউন্ট বেছে নিন ' স্ক্রিন আসতে পারে, যেখানে আপনার গুগল অ্যাকাউন্টগুলোর একটি তালিকা থাকবে। যদি এমন হয়, তাহলে যে ডিভাইস(গুলো) আপনি অনুমোদন করতে চান, সেগুলোর সাথে সংযুক্ত গুগল অ্যাকাউন্টটি নির্বাচন করুন। Device Access.
- গুগল নেস্ট পারমিশন স্ক্রিনটি নিজেই পিসিএম (PCM)। এখানে আপনি স্ট্রাকচার এবং ডিভাইস পারমিশন দিতে পারেন। আপনার হোমের জন্য পারমিশনগুলো টগল অন করুন (ধাপ ১) এবং সেই হোমের মধ্যে থাকা এসডিএম এপিআই (SDM API) দ্বারা সমর্থিত ডিভাইসগুলোর জন্য পারমিশন চালু করুন (ধাপ ২), তারপর নেক্সট ( Next) ক্লিক করুন।
- 'প্রজেক্ট নেম'- এ যাওয়ার জন্য একটি অ্যাকাউন্ট বেছে নিন স্ক্রিনে, যেখানে 'প্রজেক্ট নেম' হলো আপনার গুগল ক্লাউড প্রজেক্টের নাম, সেখান থেকে সেই গুগল অ্যাকাউন্টটি নির্বাচন করুন যেটি আপনি SDM API-এর জন্য অনুমোদন করতে চান। আগের মতোই একই গুগল অ্যাকাউন্ট ব্যবহার করুন।
- অ্যাকাউন্ট বেছে নেওয়ার পর, আপনি একটি সতর্কীকরণ স্ক্রিন পেতে পারেন যেখানে লেখা থাকবে যে Google এই অ্যাপটি যাচাই করেনি । যদি এমন হয়, তবে এগিয়ে যাওয়ার জন্য, Advanced অপশনটিতে ক্লিক করুন এবং তারপরে Go to Project Name (unsafe)-এ ক্লিক করুন। আরও তথ্যের জন্য “Google এই অ্যাপটি যাচাই করেনি” দেখুন।
- গ্রান্ট প্রজেক্টের নামের অনুমতি স্ক্রিনে, প্রজেক্টটিকে আপনার গুগল অ্যাকাউন্ট অ্যাক্সেস করার অনুমতি দিতে Allow- এ ক্লিক করুন।
- আপনার পছন্দগুলি নিশ্চিত করুন স্ক্রিনে, আপনি যে অনুমতিগুলি দিতে চান সেগুলি চেক করা আছে কিনা তা নিশ্চিত করুন এবং নিশ্চিত করতে Allow- এ ক্লিক করুন।
আপনাকে https://www.google.com-এ রিডাইরেক্ট করা হবে। অথরাইজেশন কোডটি URL-এর
codeপ্যারামিটার হিসেবে ফেরত আসে, যা এই ফরম্যাটে থাকা উচিত:https://www.google.com?code=authorization-code&
scope=https://www.googleapis.com/auth/sdm.service - অনুমোদন কোডটি কপি করুন।
একটি অ্যাক্সেস টোকেন পান
অনুমোদন কোডটি ব্যবহার করে একটি অ্যাক্সেস টোকেন সংগ্রহ করুন, যা দিয়ে আপনি SDM API কল করতে পারবেন।
একটি টার্মিনাল খুলুন এবং নিম্নলিখিত
curlকমান্ডটি চালান, প্রতিস্থাপন করে:- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত 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' গুগল OAuth দুটি টোকেন প্রদান করে, একটি অ্যাক্সেস টোকেন এবং একটি রিফ্রেশ টোকেন।
এই দুটি মানই কপি করুন। অ্যাক্সেস টোকেনটি SDM API কল করতে এবং রিফ্রেশ টোকেনটি নতুন অ্যাক্সেস টোকেন পেতে ব্যবহৃত হয়।{"access_token": "access-token","expires_in": 3599,"refresh_token": "refresh-token","scope": "https://www.googleapis.com/auth/sdm.service","token_type": "Bearer" }
ডিভাইস তালিকা কল করুন
আপনার নতুন অ্যাক্সেস টোকেন দিয়ে প্রথমবার 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"
}
]
}
]
}রিফ্রেশ টোকেন কীভাবে ব্যবহার করবেন
Google OAuth দ্বারা ফেরত আসা expires_in প্যারামিটারে যেমন উল্লেখ করা আছে, SDM API-এর অ্যাক্সেস টোকেনগুলো শুধুমাত্র ১ ঘণ্টার জন্য বৈধ থাকে। আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, একটি নতুন টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করুন।
কমান্ডটি অ্যাক্সেস টোকেনের মতোই, তবে এক্ষেত্রে একটি ভিন্ন grant_type ব্যবহার করতে হয়।
একটি টার্মিনাল খুলুন এবং নিম্নলিখিত
curlকমান্ডটি চালান, প্রতিস্থাপন করে:- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত 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' গুগল OAuth একটি নতুন অ্যাক্সেস টোকেন প্রদান করে।
{"access_token": "new-access-token","expires_in": 3599,"scope": "https://www.googleapis.com/auth/sdm.service","token_type": "Bearer" }
সমস্যা সমাধান
Google OAuth সম্পর্কে আরও জানতে, “Using OAuth 2.0 to Access Google APIs” দেখুন।
রিফ্রেশ টোকেনের মেয়াদ বারবার শেষ হয়ে যাচ্ছে।
ক্লায়েন্ট আইডি অনুমোদিত না হলে রিফ্রেশ টোকেন ৭ দিন পর কাজ করা বন্ধ করে দিতে পারে, যা একটি সম্ভাব্য কারণ। এই ৭-দিনের টোকেন মেয়াদোত্তীর্ণ হওয়ার বিষয়টি কমার্শিয়াল বা স্যান্ডবক্স অনুমোদনের সাথে সম্পর্কিত নয়। টোকেনের দীর্ঘ মেয়াদ পেতে হলে, একটি পরিষেবা বা ব্যবহারকারী অ্যাকাউন্টকে তাদের OAuth 2.0 ক্লায়েন্ট আইডি অনুমোদন করিয়ে প্রোডাকশনে আনতে হবে। আরও তথ্যের জন্য রিফ্রেশ টোকেন মেয়াদোত্তীর্ণ দেখুন।
প্রবেশাধিকার অস্বীকার করা হয়েছে
আপনি যদি গুগল ক্লাউডে আপনার OAuth কনসেন্ট স্ক্রিন সেট আপ করে থাকেন এবং ইউজার টাইপ ‘ এক্সটার্নাল’ হয়, তাহলে আপনার অ্যাপের টেস্ট ইউজার হিসেবে তালিকাভুক্ত নয় এমন কোনো গুগল অ্যাকাউন্ট দিয়ে লিঙ্ক করার চেষ্টা করলে আপনি একটি "অ্যাক্সেস ডিনাইড" এরর পাবেন। আপনার OAuth কনসেন্ট স্ক্রিনের টেস্ট ইউজারস সেকশনে গুগল অ্যাকাউন্টটি যোগ করা নিশ্চিত করুন।
পার্টনার কানেকশনস ম্যানেজার (PCM) ত্রুটি
PCM অ্যাক্সেস করার সময় সম্মুখীন হওয়া যেকোনো ত্রুটির সাহায্যের জন্য, পার্টনার কানেকশনস ম্যানেজার (PCM) এরর রেফারেন্স দেখুন।
গুগল এই অ্যাপটি যাচাই করেনি।
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 ভ্যালুটি ব্যবহার করছেন, তা আপনার Google Cloud Credentials পৃষ্ঠায় থাকা ব্যবহৃত OAuth 2.0 ক্লায়েন্ট আইডির সাথেই মিলে যায়।
অনুরোধটি অবৈধ, প্রয়োজনীয় পরিধি অনুপস্থিত।
PCM-এ অনুমতি দেওয়ার পরে, আপনি "Missing required parameter: scope" এর কারণে একটি "Invalid request" ত্রুটির সম্মুখীন হতে পারেন। নিশ্চিত করুন যে আপনি অথরাইজেশন কলে যে scope ভ্যালুটি ব্যবহার করছেন, তা আপনার Google Cloud Credentials পৃষ্ঠায় থাকা 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 অ্যাকাউন্ট আনলিঙ্ক করুন’ (Unlink your Google Account) -এ ক্লিক করুন। এটি অ্যাকাউন্টটির জন্য প্রজেক্টকে দেওয়া সমস্ত অনুমতি এবং অ্যাক্সেস টোকেন প্রত্যাহার করে নেবে।
যদি PCM-এ কাঙ্ক্ষিত পরিষেবাটি না দেখা যায়, তাহলে আপনাকে প্রথমে ডিভাইস লিস্ট কল করতে হতে পারে।
দ্রুত রেফারেন্স
অনুমোদন করার ধাপগুলো দ্রুত বাস্তবায়ন করতে এই নির্দেশিকাটি ব্যবহার করুন।user এবং তাদের গুগল অ্যাকাউন্ট লিঙ্ক করুন।
এই দ্রুত নির্দেশিকাটি ব্যবহার করতে, কোড স্যাম্পলগুলিতে থাকা প্রতিটি প্লেসহোল্ডার ভেরিয়েবলকে আপনার নির্দিষ্ট ইন্টিগ্রেশনের মান দিয়ে সম্পাদনা করুন এবং প্রয়োজন অনুযায়ী কপি ও পেস্ট করুন:
১ পিসিএম
একটি ওয়েব ব্রাউজারে নিম্নলিখিত লিঙ্কটি খুলুন এবং প্রতিস্থাপন করুন:
- project-id আপনার project-id সহ Device Access Project আইডি
- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত 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 কমান্ডটি চালান, প্রতিস্থাপন করে:
- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
- পূর্ববর্তী ধাপে প্রাপ্ত কোডটি দিয়ে authorization-code
গুগল 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"
}৪ এপিআই কল
আপনার নতুন অ্যাক্সেস টোকেন দিয়ে প্রথমবার devices.list কল না করা পর্যন্ত অনুমোদন প্রক্রিয়া সম্পূর্ণ হবে না। এই প্রাথমিক কলটি অনুমোদন প্রক্রিয়াটি শেষ করে এবং আপনি যদি আগে থেকেই একটি পাব/সাব সাবস্ক্রিপশন সেট আপ করে থাকেন, তবে ইভেন্টগুলি সক্রিয় করে।
অনুমোদন সম্পন্ন করতে আপনাকে অবশ্যই নির্দিষ্ট স্কোপের জন্য তালিকাভুক্ত এপিআই কলগুলোর মধ্যে একটি ব্যবহার করতে হবে ।
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'৫ রিফ্রেশ টোকেন
Google OAuth দ্বারা ফেরত আসা expires_in প্যারামিটারে যেমন উল্লেখ করা আছে, SDM API-এর অ্যাক্সেস টোকেনগুলো শুধুমাত্র ১ ঘণ্টার জন্য বৈধ থাকে। আপনার অ্যাক্সেস টোকেনের মেয়াদ শেষ হয়ে গেলে, একটি নতুন টোকেন পেতে রিফ্রেশ টোকেন ব্যবহার করুন।
একটি টার্মিনাল খুলুন এবং নিম্নলিখিত curl কমান্ডটি চালান, প্রতিস্থাপন করে:
- আপনার গুগল ক্লাউড ক্রেডেনশিয়ালস থেকে প্রাপ্ত OAuth2 ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ব্যবহার করে oauth2-client-id এবং oauth2-client-secret
- প্রাথমিকভাবে অ্যাক্সেস টোকেন পাওয়ার সময় আপনি যে কোডটি পেয়েছিলেন, তা দিয়ে refresh-token ।
গুগল 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"
}