Request Sync की सुविधा, Google के ऐसे सभी उपयोगकर्ताओं के लिए आपके फ़ुलफ़िलमेंट को SYNC अनुरोध ट्रिगर करती है जिनके डिवाइस, तय किए गए
agentUserId से जुड़े होते हैं. यह
आपने ओरिजनल SYNC अनुरोध में भेजा था. इससे, उपयोगकर्ता के खाते को अनलिंक और रिलिंक किए बिना, उसके डिवाइसों को अपडेट किया जा सकता है. इस आइडेंटिफ़ायर से लिंक किए गए सभी उपयोगकर्ताओं को SYNC अनुरोध मिलेगा.
आपको SYNC अनुरोध तब ट्रिगर करना होगा, जब:
- उपयोगकर्ता कोई नया डिवाइस जोड़ता है.
- उपयोगकर्ता, पहले से मौजूद कोई डिवाइस हटाता है.
- उपयोगकर्ता, पहले से मौजूद किसी डिवाइस का नाम बदलता है.
- आपने कोई नई डिवाइस टाइप, ट्रेट लागू किया हो या कोई नई डिवाइस सुविधा जोड़ी हो.
शुरू करें
Request Sync की सुविधा लागू करने के लिए, यह तरीका अपनाएं:
Google HomeGraph API को चालू करें
-
Google Cloud Console में, HomeGraph API पेज पर जाएं.
HomeGraph API पेज पर जाएं - वह प्रोजेक्ट चुनें जो आपके smart home प्रोजेक्ट आईडी से मेल खाता हो.
- चालू करें पर क्लिक करें.
सेवा खाते की कुंजी बनाएं
Google Cloud Console से सेवा खाते की कुंजी जनरेट करने के लिए, यह तरीका अपनाएं:
-
Google Cloud Console में, सेवा खाते पेज पर जाएं.
सेवा खाते वाले पेज पर जाएं.सेवा खाते वाले पेज पर जाने से पहले, आपको कोई प्रोजेक्ट चुनना पड़ सकता है.
जोड़ेंसेवा खाता बनाएं पर क्लिक करें.
सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें.
सेवा खाते का आईडी फ़ील्ड में, कोई आईडी डालें.
सेवा खाते की जानकारी फ़ील्ड में, कोई जानकारी डालें.
बनाएं और जारी रखें पर क्लिक करें.
भूमिका ड्रॉपडाउन में, सेवा खाते > सेवा खाते के OpenID Connect आइडेंटिटी टोकन का क्रिएटर चुनें.
जारी रखें पर क्लिक करें.
हो गया पर क्लिक करें.
सेवा खातों की सूची में से, अभी-अभी बनाया गया सेवा खाता चुनें. इसके बाद, कार्रवाइयां मेन्यू में जाकर, कुंजियां मैनेज करें चुनें.
कुंजी जोड़ें > नई कुंजी बनाएं चुनें.
**कुंजी का टाइप** के लिए, **JSON** विकल्प चुनें.
बनाएं पर क्लिक करें. ऐसा करने पर, आपके कंप्यूटर पर एक JSON फ़ाइल डाउनलोड होगी. इसमें आपकी कुंजी मौजूद होगी.
एपीआई को कॉल करें
HTTP
Home Graph API, एक एचटीटीपी एंडपॉइंट उपलब्ध कराता है
- डाउनलोड की गई सेवा खाते की JSON फ़ाइल का इस्तेमाल करके, JSON Web Token (JWT) बनाएं. ज़्यादा जानकारी के लिए, सेवा खाते का इस्तेमाल करके पुष्टि करना लेख पढ़ें.
- oauth2l का इस्तेमाल करके,
https://www.googleapis.com/auth/homegraphस्कोप के साथ OAuth 2.0 का ऐक्सेस टोकन पाएं: agentUserIdके साथ JSON अनुरोध बनाएं. Request Sync के लिए, JSON अनुरोध का एक उदाहरण यहां दिया गया है:- Google Home Graph के एंडपॉइंट पर, अपने एचटीटीपी POST
अनुरोध में, Request Sync 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सेवा को शुरू करें. requestSyncतरीके को RequestSyncDevicesRequest के साथ कॉल करें. यह, खाली 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 को कॉल करने पर, आपको गड़बड़ी के ये जवाब मिल सकते हैं. ये जवाब, एचटीटीपी स्टेटस कोड के तौर पर मिलते हैं.
400 Bad Request- सिंटैक्स अमान्य होने की वजह से, सर्वर, क्लाइंट के भेजे गए अनुरोध को प्रोसेस नहीं कर सका. इसकी सामान्य वजहों में, गलत तरीके से बनाया गया JSON या स्ट्रिंग वैल्यू के लिए "" के बजायnullका इस्तेमाल करना शामिल है.403 Forbidden- टोकन को रीफ़्रेश करते समय गड़बड़ी होने की वजह से, सर्वर, दिए गएagentUserIdके लिए अनुरोध को प्रोसेस नहीं कर सका. पक्का करें कि आपका OAuth एंडपॉइंट, रीफ़्रेश टोकन के अनुरोधों का सही तरीके से जवाब दे. साथ ही, उपयोगकर्ता के खाते को लिंक करने की स्थिति की जांच करें.404 Not Found- अनुरोध किया गया संसाधन नहीं मिला . हालांकि, यह आने वाले समय में उपलब्ध हो सकता है. आम तौर पर, इसका मतलब है कि उपयोगकर्ता का खाता, Google से लिंक नहीं है या हमें अमान्यagentUserIdमिला है. पक्का करें किagentUserIdआपके SYNC जवाब में दी गई वैल्यू से मेल खाता हो. साथ ही, आपने DISCONNECT इंटेंट को सही तरीके से हैंडल किया हो.429 Too Many Requests- दिए गएagentUserIdके लिए, एक साथ सिंक करने के अनुरोधों की ज़्यादा से ज़्यादा संख्या पार हो गई है. अनुरोध करने वाला व्यक्ति, एक साथ सिंक करने का सिर्फ़ एक अनुरोध कर सकता है. हालांकि, अगरasyncफ़्लैग को 'सही' पर सेट किया गया है, तो एक से ज़्यादा अनुरोध किए जा सकते हैं.