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