সিঙ্ক করার অনুরোধ, নির্দিষ্ট
agentUserId যুক্ত ডিভাইস (যা আপনি
আসল SYNC অনুরোধে পাঠিয়েছেন) আছে এমন যেকোনও Google ব্যবহারকারীর জন্য
আপনার ফুলফিলমেন্টে SYNC অনুরোধ ট্রিগার করে। এর ফলে আপনি ব্যবহারকারীর অ্যাকাউন্ট আনলিঙ্ক ও আবার লিঙ্ক না করেই
তার ডিভাইস আপডেট করতে পারবেন। এই শনাক্তকারীর সাথে লিঙ্ক করা সব ব্যবহারকারী
SYNC অনুরোধ পাবেন।
আপনাকে অবশ্যই একটি SYNC অনুরোধ ট্রিগার করতে হবে:
- ব্যবহারকারী নতুন ডিভাইস যোগ করলে।
- ব্যবহারকারী আগে থেকে থাকা কোনও ডিভাইস সরিয়ে দিলে।
- ব্যবহারকারী আগে থেকে থাকা ডিভাইসের নাম পরিবর্তন করলে।
- আপনি যদি নতুন ডিভাইসের ধরন, বৈশিষ্ট্য বা নতুন ডিভাইস ফিচার যোগ করেন।
শুরু করুন
সিঙ্ক করার অনুরোধ কার্যকর করতে, এই ধাপগুলি অনুসরণ করুন:
Google HomeGraph API চালু করা
-
Google Cloud Console-এ, HomeGraph API পৃষ্ঠায় যান।
HomeGraph API পৃষ্ঠায় যান - আপনার smart home প্রোজেক্ট আইডির সাথে মেলে এমন প্রোজেক্ট বেছে নিন।
- চালু করুন বিকল্পে ক্লিক করুন।
পরিষেবা অ্যাকাউন্টের 'কী' তৈরি করা
Google Cloud Console থেকে পরিষেবা অ্যাকাউন্টের 'কী' জেনারেট করতে এইসব নির্দেশাবলী অনুসরণ করুন:
-
Google Cloud Console-এ, পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় যান।
পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় যান।পরিষেবা অ্যাকাউন্ট পৃষ্ঠায় যাওয়ার আগে আপনাকে কোনও প্রোজেক্ট বেছে নিতে হতে পারে।
পরিষেবা অ্যাকাউন্ট তৈরি করুন বিকল্পে ক্লিক করুন।
পরিষেবা অ্যাকাউন্টের নাম ফিল্ডে, একটি নাম লিখুন।
পরিষেবা অ্যাকাউন্ট আইডি ফিল্ডে, একটি আইডি লিখুন।
পরিষেবা অ্যাকাউন্টের বিবরণ ফিল্ডে, একটি বিবরণ লিখুন।
তৈরি করুন ও চালিয়ে যান বিকল্পে ক্লিক করুন।
ভূমিকা ড্রপডাউন থেকে, পরিষেবা অ্যাকাউন্ট > পরিষেবা অ্যাকাউন্ট OpenID Connect আইডেন্টিটি টোকেন ক্রিয়েটর বেছে নিন।
চালিয়ে যান বিকল্পে ক্লিক করুন।
হয়ে গেছে বিকল্পে ক্লিক করুন।
পরিষেবা অ্যাকাউন্টের তালিকা থেকে আপনি এইমাত্র যে পরিষেবা অ্যাকাউন্ট তৈরি করেছেন সেটি বেছে নিন এবং অ্যাকশন মেনু থেকে কী ম্যানেজ করুন বিকল্প বেছে নিন।
কী যোগ করুন > নতুন কী তৈরি করুন বিকল্প বেছে নিন।
কী-এর ধরন-এর জন্য, JSON বিকল্প বেছে নিন।
তৈরি করুন বিকল্পে ক্লিক করুন। আপনার কম্পিউটারে ডাউনলোড করা 'কী' সহ JSON ফাইল।
API কল করুন
HTTP
Home Graph API একটি HTTP এন্ডপয়েন্ট প্রদান করে
- JSON ওয়েব টোকেন (JWT) তৈরি করতে ডাউনলোড করা পরিষেবা অ্যাকাউন্ট JSON ফাইল ব্যবহার করুন। আরও তথ্যের জন্য, সার্ভিস অ্যাকাউন্ট ব্যবহার করে যাচাইকরণ করা দেখুন।
- oauth2l ব্যবহার করে
https://www.googleapis.com/auth/homegraphস্কোপ সহ OAuth 2.0 অ্যাক্সেস টোকেন পান: agentUserId-এর সাহায্যে JSON অনুরোধ তৈরি করুন। সিঙ্ক করার অনুরোধের জন্য এখানে একটি নমুনা JSON অনুরোধ দেওয়া হল:- Google Home Graph এন্ডপয়েন্টে আপনার HTTP POST অনুরোধে
সিঙ্ক JSON এবং টোকেন একত্রিত করুন। এখানে একটি উদাহরণ দেওয়া হল যে কীভাবে
curlব্যবহার করে কমান্ড লাইনে অনুরোধ করতে হয়, পরীক্ষা হিসেবে:
oauth2l fetch --credentials service-account.json \ --scope https://www.googleapis.com/auth/homegraph
{ "agentUserId": "user-123" }
curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d @request-body.json \ "https://homegraph.googleapis.com/v1/devices:requestSync"
gRPC
Home Graph API একটি gRPC এন্ডপয়েন্ট প্রদান করে
- Home Graph API-এর জন্য প্রোটোকল বাফার পরিষেবার সংজ্ঞা পান।
- কাজ করে এমন ভাষার মধ্যে কোনও একটির জন্য ক্লায়েন্ট স্টাব তৈরি করতে gRPC ডেভেলপার ডকুমেন্টেশন ফলো করুন।
- RequestSync মেথড কল করুন।
Node.js
Google APIs Node.js Client Home Graph API-এর জন্য বাইন্ডিং প্রদান করে।
- অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে
google.homegraphপরিষেবা শুরু করুন। - RequestSyncDevicesRequest-এর সাথে
requestSyncপদ্ধতি কল করুন। এটি খালি RequestSyncDevicesResponse সহPromiseরিটার্ন করে।
const homegraphClient = homegraph({ version: 'v1', auth: new GoogleAuth({ scopes: 'https://www.googleapis.com/auth/homegraph' }) }); const res = await homegraphClient.devices.requestSync({ requestBody: { agentUserId: 'PLACEHOLDER-USER-ID', async: false } });
Java
Java-র জন্য HomeGraph API ক্লায়েন্ট লাইব্রেরি Home Graph API-এর জন্য বাইন্ডিং প্রদান করে।
- অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করে
HomeGraphApiServiceশুরু করুন। RequestSyncDevicesRequest-এর সাথেrequestSyncমেথড কল করুন। এটি একটি খালিReportStateAndNotificationResponseরিটার্ন করে।
// Get Application Default credentials. GoogleCredentials credentials = GoogleCredentials.getApplicationDefault() .createScoped(List.of("https://www.googleapis.com/auth/homegraph")); // Create Home Graph service client. HomeGraphService homegraphService = new HomeGraphService.Builder( GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance(), new HttpCredentialsAdapter(credentials)) .setApplicationName("HomeGraphExample/1.0") .build(); // Request sync. RequestSyncDevicesRequest request = new RequestSyncDevicesRequest().setAgentUserId("PLACEHOLDER-USER-ID").setAsync(false); homegraphService.devices().requestSync(request);
সমস্যা সংক্রান্ত উত্তর
Request Sync কল করার সময় আপনি নিম্নলিখিত কোনও একটি সমস্যার উত্তর পেতে পারেন। এইসব উত্তর HTTP স্ট্যাটাস কোড হিসেবে আসে।
400 Bad Request- ভুল সিনট্যাক্স-এর কারণে ক্লায়েন্টের পাঠানো অনুরোধ সার্ভার প্রসেস করতে পারেনি। সাধারণ কারণের মধ্যে রয়েছে ভুল ফর্ম্যাটের JSON বা স্ট্রিং ভ্যালুর জন্য ""-এর পরিবর্তেnullব্যবহার করা।403 Forbidden- টোকেন রিফ্রেশ করার সময় কোনও সমস্যার কারণে সার্ভারagentUserId-এর জন্য করা অনুরোধ প্রসেস করতে পারেনি। আপনার OAuth এন্ডপয়েন্ট যাতে রিফ্রেশ টোকেনের অনুরোধে সঠিকভাবে উত্তর দেয় এবং ব্যবহারকারীর অ্যাকাউন্ট লিঙ্ক করার স্ট্যাটাস চেক করে তা নিশ্চিত করুন।404 Not Found- অনুরোধ করা রিসোর্স খুঁজে পাওয়া যায়নি, তবে ভবিষ্যতে উপলভ্য হতে পারে। সাধারণত, এর অর্থ হল ব্যবহারকারীর অ্যাকাউন্ট Google-এর সাথে লিঙ্ক করা নেই অথবা আমরা ভুলagentUserIdপেয়েছি। নিশ্চিত করুন যেagentUserIdআপনার SYNC রেসপন্সে প্রদান করা ভ্যালুর সাথে মেলে এবং আপনি সঠিকভাবে DISCONNECT ইনটেন্ট ম্যানেজ করছেন।429 Too Many Requests- প্রদত্তagentUserId-এর জন্য একসাথে সিঙ্ক করার অনুরোধের সর্বাধিক সংখ্যা অতিক্রম করা হয়েছে।asyncফ্ল্যাগ true হিসেবে সেট করা না থাকলে, একজন কলার একসাথে শুধু একটি সিঙ্ক করার অনুরোধ করতে পারবেন।