सिंक करने का अनुरोध करें

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

डेटा सिंक करने का अनुरोध, किसी भी Google उपयोगकर्ता के लिए, खरीदारी को पूरा करने के लिए SYNC का अनुरोध ट्रिगर करता है उन डिवाइस के साथ जिनमें यह बताया गया है कि उनसे जुड़ा agentUserId (जिसे आपने भेजा गया है). इससे आपको उपयोगकर्ताओं की जानकारी अपडेट करने में डिवाइस वे अपने खाते को अनलिंक और फिर से लिंक किए बिना ऐसा कर सकते हैं. इससे जुड़े सभी उपयोगकर्ता आइडेंटिफ़ायर को SYNC का अनुरोध मिलेगा.

आपको SYNC अनुरोध को ट्रिगर करना होगा:

  • अगर उपयोगकर्ता कोई नया डिवाइस जोड़ता है.
  • अगर उपयोगकर्ता किसी मौजूदा डिवाइस को हटाता है.
  • अगर उपयोगकर्ता किसी मौजूदा डिवाइस का नाम बदलता है.
  • अगर आपने किसी नए डिवाइस टाइप, Trait को लागू किया है या डिवाइस में कोई नई सुविधा जोड़ी है.

अपनी प्रोफ़ाइल बनाना शुरू करें

अनुरोध सिंक करने की प्रोसेस लागू करने के लिए, यह तरीका अपनाएं:

Google HomeGraph API को चालू करना

  1. Google Cloud Console में, HomeGraph API पेज पर जाएं.

    HomeGraph API पेज पर जाएं
  2. वह प्रोजेक्ट चुनें जो आपके smart home के प्रोजेक्ट आईडी से मेल खाता हो.
  3. चालू करें पर क्लिक करें.

सेवा खाता कुंजी बनाना

Google Cloud Console से सेवा खाता कुंजी जनरेट करने के लिए, इन निर्देशों का पालन करें:

ध्यान दें: पक्का करें कि परफ़ॉर्म करते समय, सही GCP प्रोजेक्ट का इस्तेमाल किया जा रहा हो यहां बताया गया तरीका अपनाएं. यह वही प्रोजेक्ट है जो आपके smart home के प्रोजेक्ट आईडी से मेल खाता है.
  1. Google Cloud Console में, सेवा खाते की कुंजी बनाएं पेज पर जाएं.

    सेवा खाते के मुख्य पेज पर जाएं
  2. सेवा खाता सूची से, चुनें नया सेवा खाता.
  3. सेवा खाते का नाम फ़ील्ड में, कोई नाम डालें.
  4. सेवा खाता आईडी फ़ील्ड में, आईडी डालें.
  5. भूमिका सूची से सेवा खाते चुनें > सेवा खाते का टोकन क्रिएटर.

  6. कुंजी टाइप के लिए, JSON विकल्प चुनें.

  7. बनाएं पर क्लिक करें. ऐसी JSON फ़ाइल जिसमें आपकी कुंजी शामिल है आपके कंप्यूटर पर डाउनलोड हो सकता है.

एपीआई को कॉल करें

HTTP

होम ग्राफ़ एपीआई एचटीटीपी एंडपॉइंट देता है

  1. JSON वेब बनाने के लिए, सेवा खाते की डाउनलोड की गई JSON फ़ाइल का इस्तेमाल करें टोकन (JWT). ज़्यादा जानकारी के लिए, यह देखें सेवा खाते का इस्तेमाल करके पुष्टि करना.
  2. एक OAuth 2.0 ऐक्सेस टोकन पाएं. https://www.googleapis.com/auth/homegraph दायरा इसका इस्तेमाल कर रहा है oauth2l:
  3. oauth2l fetch --credentials service-account.json \
      --scope https://www.googleapis.com/auth/homegraph
    
  4. agentUserId की मदद से JSON का अनुरोध करें. यहां अनुरोध सिंक करने के लिए JSON अनुरोध का एक सैंपल दिया गया है:
  5. {
      "agentUserId": "user-123"
    }
    
  6. अपने एचटीटीपी पीओएसटी में, अनुरोध सिंक करने वाले JSON और टोकन को जोड़ें Google Home ग्राफ़ के एंडपॉइंट से जुड़ने का अनुरोध करें. यहां इसका उदाहरण दिया गया है कि curl का इस्तेमाल करके कमांड लाइन में अनुरोध करने के लिए, जैसे कि टेस्ट:
  7. 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 एंडपॉइंट उपलब्ध कराता है

  1. होम ग्राफ़ एपीआई के लिए, प्रोटोकॉल बफ़र सेवा की परिभाषा पाएं.
  2. gRPC डेवलपर दस्तावेज़ का पालन करके इस्तेमाल की जा सकने वाली भाषाओं में से किसी एक के लिए क्लाइंट स्टब जनरेट करें.
  3. RequestSync तरीके को कॉल करें.

Node.js

Google API Node.js क्लाइंट, होम ग्राफ़ एपीआई के लिए बाइंडिंग उपलब्ध कराता है.

  1. ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके, google.homegraph सेवा शुरू करें.
  2. 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 एपीआई क्लाइंट लाइब्रेरी, होम ग्राफ़ एपीआई के लिए बाइंडिंग उपलब्ध कराती है.

  1. ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करके, HomeGraphApiService को शुरू करें.
  2. 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 फ़्लैग सही पर सेट किया गया है.