डेटा सिंक करने का अनुरोध, किसी भी Google उपयोगकर्ता के लिए, खरीदारी को पूरा करने के लिए SYNC
का अनुरोध ट्रिगर करता है
उन डिवाइस के साथ जिनमें यह बताया गया है कि
उनसे जुड़ा agentUserId
(जिसे आपने
भेजा गया है). इससे आपको उपयोगकर्ताओं की जानकारी अपडेट करने में डिवाइस
वे अपने खाते को अनलिंक और फिर से लिंक किए बिना ऐसा कर सकते हैं. इससे जुड़े सभी उपयोगकर्ता
आइडेंटिफ़ायर को SYNC
का अनुरोध मिलेगा.
आपको SYNC
अनुरोध को ट्रिगर करना होगा:
- अगर उपयोगकर्ता कोई नया डिवाइस जोड़ता है.
- अगर उपयोगकर्ता किसी मौजूदा डिवाइस को हटाता है.
- अगर उपयोगकर्ता किसी मौजूदा डिवाइस का नाम बदलता है.
- अगर आपने किसी नए डिवाइस टाइप, Trait को लागू किया है या डिवाइस में कोई नई सुविधा जोड़ी है.
अपनी प्रोफ़ाइल बनाना शुरू करें
अनुरोध सिंक करने की प्रोसेस लागू करने के लिए, यह तरीका अपनाएं:
Google HomeGraph API को चालू करना
-
Google Cloud Console में, HomeGraph API पेज पर जाएं.
HomeGraph API पेज पर जाएं - वह प्रोजेक्ट चुनें जो आपके smart home के प्रोजेक्ट आईडी से मेल खाता हो.
- चालू करें पर क्लिक करें.
सेवा खाता कुंजी बनाना
Google Cloud Console से सेवा खाता कुंजी जनरेट करने के लिए, इन निर्देशों का पालन करें:
-
Google Cloud Console में, सेवा खाते की कुंजी बनाएं पेज पर जाएं.
सेवा खाते के मुख्य पेज पर जाएं - सेवा खाता सूची से, चुनें नया सेवा खाता.
- सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें.
- सेवा खाता आईडी फ़ील्ड में, आईडी डालें.
भूमिका सूची से सेवा खाते चुनें > सेवा खाते का टोकन क्रिएटर.
कुंजी टाइप के लिए, JSON विकल्प चुनें.
- बनाएं पर क्लिक करें. ऐसी JSON फ़ाइल जिसमें आपकी कुंजी शामिल है आपके कंप्यूटर पर डाउनलोड हो सकता है.
एपीआई को कॉल करें
HTTP
होम ग्राफ़ एपीआई एचटीटीपी एंडपॉइंट देता है
- JSON वेब बनाने के लिए, सेवा खाते की डाउनलोड की गई JSON फ़ाइल का इस्तेमाल करें टोकन (JWT). ज़्यादा जानकारी के लिए, यह देखें सेवा खाते का इस्तेमाल करके पुष्टि करना.
- एक OAuth 2.0 ऐक्सेस टोकन पाएं.
https://www.googleapis.com/auth/homegraph
दायरा इसका इस्तेमाल कर रहा है oauth2l: agentUserId
की मदद से JSON का अनुरोध करें. यहां अनुरोध सिंक करने के लिए JSON अनुरोध का एक सैंपल दिया गया है:- अपने एचटीटीपी पीओएसटी में, अनुरोध सिंक करने वाले JSON और टोकन को जोड़ें
Google Home ग्राफ़ के एंडपॉइंट से जुड़ने का अनुरोध करें. यहां इसका उदाहरण दिया गया है कि
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
होम ग्राफ़ एपीआई एक gRPC एंडपॉइंट उपलब्ध कराता है
- होम ग्राफ़ एपीआई के लिए, प्रोटोकॉल बफ़र सेवा की परिभाषा पाएं.
- gRPC डेवलपर दस्तावेज़ का पालन करके इस्तेमाल की जा सकने वाली भाषाओं में से किसी एक के लिए क्लाइंट स्टब जनरेट करें.
- RequestSync तरीके को कॉल करें.
Node.js
Google API Node.js क्लाइंट, होम ग्राफ़ एपीआई के लिए बाइंडिंग उपलब्ध कराता है.
- ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके,
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 एपीआई क्लाइंट लाइब्रेरी, होम ग्राफ़ एपीआई के लिए बाइंडिंग उपलब्ध कराती है.
- ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके,
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 का रिस्पॉन्स और आप ठीक हैं डिसकनेक्ट इंटेंट को मैनेज करना.429 Too Many Requests
- एक साथ सिंक करने की ज़्यादा से ज़्यादा संख्या दिए गएagentUserId
के लिए अनुरोध की सीमा पार हो गई है. कॉलर हो सकता है कि एक साथ सिंक करने का सिर्फ़ एक अनुरोध जारी करे, जब तक किasync
फ़्लैग सही पर सेट किया गया है.