किसी खाते को अनुमति देना

Google Cloud और डिवाइस ऐक्सेस के प्रोजेक्ट बनाने के बाद, के साथ काम करने वाले Google Nest डिवाइस पर, एसडीएम एपीआई.

स्ट्रक्चर और डिवाइसों को देखने के लिए, आपको किसी Google खाते को अपने Device Access पीसीएम का इस्तेमाल करके प्रोजेक्ट करना. PCM, user को ये काम करने की अनुमति देता है developerको उनके स्ट्रक्चर और डिवाइस का डेटा ऐक्सेस करने की अनुमति देनी होगी.

इस गाइड में, आपने user और developer, दोनों के तौर पर अपनी सेवाएं दी हैं.

  1. इस लिंक को किसी वेब पर खोलें इसे बदला जा रहा है:

    1. आपके Device Access Project आईडी का इस्तेमाल project-id
    2. oauth2-client-id अपने OAuth2 क्लाइंट आईडी से Google क्लाउड क्रेडेंशियल
    https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com&access_type=offline&prompt=consent&client_id=oauth2-client-id&response_type=code&scope=https://www.googleapis.com/auth/sdm.service
    
  2. अगर आपने हाल ही में कई खातों से Google में साइन इन किया है, तो आपको खाता चुनें स्क्रीन पर, Google खाते. अगर ऐसा है, तो अपने डिवाइसों से जुड़ा Google खाता चुनें Device Accessके लिए अनुमति देना चाहते हैं.
  3. Google Nest की अनुमतियों वाली स्क्रीन, PCM में ही होती है. यहां से, स्ट्रक्चर और डिवाइस के लिए अनुमतियां दी जा सकती हैं. इस पर टॉगल करें आपके होम के लिए अनुमतियां (पहला चरण) और उस होम के किसी भी डिवाइस के लिए अनुमतियां एसडीएम एपीआई (दूसरा चरण) की मदद से काम करता है, तो आगे बढ़ें पर क्लिक करें.
  4. प्रोजेक्ट का नाम इस्तेमाल करने के लिए कोई खाता चुनें स्क्रीन पर, जहां प्रोजेक्ट का नाम आपके Google Cloud प्रोजेक्ट का नाम है. इसके बाद, वह Google खाता जिसे आप एसडीएम एपीआई. पहले की तरह ही Google खाते का इस्तेमाल करें.
  5. खाता चुनने के बाद, आपको एक चेतावनी स्क्रीन दिख सकती है. इसमें यह जानकारी होगी कि Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है. अगर ऐसा है, तो जारी रखने के लिए, ऐडवांस विकल्प चुनें और फिर प्रोजेक्ट के नाम पर जाएं (असुरक्षित) पर क्लिक करें. यहां जाएं: ज़्यादा के लिए Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है जानकारी.
  6. प्रोजेक्ट का नाम अनुमति दें स्क्रीन पर, अनुमति दें पर क्लिक करके, आपके Google खाते को ऐक्सेस करने के लिए प्रोजेक्ट की अनुमति.
  7. अपने विकल्पों की पुष्टि करें स्क्रीन पर, पक्का करें कि आपको जो अनुमतियां चाहिए 'अनुमति दें' पर सही का निशान लगाएं. इसके बाद, पुष्टि करने के लिए अनुमति दें पर क्लिक करें.
  8. आपको यहां रीडायरेक्ट किया जाएगा https://www.google.com. ऑथराइज़ेशन कोड को यूआरएल में, code पैरामीटर के तौर पर दिखाया जाता है, जो इस फ़ॉर्मैट में होना चाहिए:

    https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service
    
  9. ऑथराइज़ेशन कोड को कॉपी करें.

ऐक्सेस टोकन पाना

ऐक्सेस टोकन फिर से पाने के लिए, इस ऑथराइज़ेशन कोड का इस्तेमाल करें तो एसडीएम एपीआई को कॉल करने के लिए भी इसका इस्तेमाल किया जा सकता है.

  1. टर्मिनल खोलें और चलाएं ये curl निर्देश, इसे बदल देगा:

    1. oauth2-client-id और oauth2-client-secret अपने ग्राहक आईडी और OAuth2 क्लाइंट आईडी के साथ Google क्लाउड क्रेडेंशियल
    2. पिछले चरण में मिले कोड का इस्तेमाल करके authorization-code
    curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'
    
  2. Google OAuth दो टोकन, एक ऐक्सेस टोकन और रीफ़्रेश टोकन.

    {
      "access_token": "access-token",
      "expires_in": 3599,
      "refresh_token": "refresh-token",
      "scope": "https://www.googleapis.com/auth/sdm.service",
      "token_type": "Bearer"
    }
    इन दोनों वैल्यू को कॉपी करें. ऐक्सेस टोकन का इस्तेमाल एसडीएम एपीआई और रीफ़्रेश टोकन का इस्तेमाल, नए वर्शन को पाने के लिए किया जाता है ऐक्सेस टोकन.

डिवाइस सूची से कॉल करें

अनुमति देने की प्रोसेस तब तक पूरी नहीं होगी, जब तक आप आपका पहला devices.list कॉल करने के लिए अपने नए ऐक्सेस टोकन का इस्तेमाल करें. यह शुरुआती कॉल, अनुमति देने की प्रक्रिया पूरी करता है और अगर इवेंट को चालू किया जाता है, तो आपने पहले ही Pub/Sub सदस्यता सेट अप कर ली है.

devices एंडपॉइंट के लिए यह कॉल करने के लिए, curl का इस्तेमाल करें:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

सफल कॉल पर, आपके Device Accessसे लिंक किए गए डिवाइसों की सूची दिखती है प्रोजेक्ट. हर डिवाइस में, चुने गए लक्षणों की अपनी एक खास सूची होती है:

{
  "devices": [
    {
      "name": "enterprises/project-id/devices/device-id",
      "type": "sdm.devices.types.device-type",
      "traits": { ... },
      "parentRelations": [
        {
          "parent": "enterprises/project-id/structures/structure-id/rooms/room-id",
          "displayName": "device-room-name"
        }
      ]
    }
  ]
}

रीफ़्रेश टोकन को इस्तेमाल करने का तरीका

सिर्फ़ एसडीएम एपीआई के लिए ऐक्सेस टोकन ही हैं एक घंटे के लिए मान्य होगा, जैसा कि Google OAuth से मिले expires_in पैरामीटर में बताया गया है. अगर आपने तो आपका ऐक्सेस टोकन खत्म हो जाएगा. नया टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करें.

निर्देश, ऐक्सेस टोकन के जैसा ही होता है. हालांकि, आप किसी दूसरे निर्देश का इस्तेमाल करते हैं grant_type.

  1. टर्मिनल खोलें और curl निर्देश का पालन किया जा रहा है. इसे ये बदला जा रहा है:

    1. oauth2-client-id और oauth2-client-secret अपने ग्राहक आईडी और OAuth2 क्लाइंट आईडी के साथ Google क्लाउड क्रेडेंशियल
    2. शुरुआत में ऐक्सेस पाते समय आपको मिले कोड से refresh-token टोकन.
    curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'
    
  2. Google OAuth नया ऐक्सेस टोकन दिखाता है.

    {
      "access_token": "new-access-token",
      "expires_in": 3599,
      "scope": "https://www.googleapis.com/auth/sdm.service",
      "token_type": "Bearer"
    }

समस्या का हल

Google OAuth के बारे में ज़्यादा जानने के लिए, OAuth 2.0 का इस्तेमाल करके, Google को ऐक्सेस करना' लेख देखें APIs.

रीफ़्रेश टोकन की समयसीमा खत्म होती रहती है

अगर क्लाइंट आईडी को मंज़ूरी नहीं मिलती है, तो रीफ़्रेश टोकन सात दिनों के बाद काम करना बंद कर सकते हैं की एक संभावित वजह है. टोकन के खत्म होने की सात दिन की अवधि, कमर्शियल प्रॉपर्टी से नहीं जुड़ी है या सैंडबॉक्स की मंज़ूरी होनी चाहिए. किसी सेवा या उपयोगकर्ता खाते को अपना OAuth पाना ज़रूरी है 2.0 क्लाइंट आईडी को मंज़ूरी मिल गई है और टोकन को लंबे समय तक इस्तेमाल करने के लिए, उसे प्रोडक्शन में रखा गया है. ज़्यादा जानकारी के लिए, रीफ़्रेश टोकन की समयसीमा खत्म होने की तारीख देखें जानकारी.

ऐक्सेस करने की मंज़ूरी नहीं मिली

अगर आपने Google Cloud में OAuth की सहमति वाली स्क्रीन सेट अप की है और उपयोगकर्ता का टाइप बाहरी है, इसलिए आपको "ऐक्सेस नहीं दिया गया" दिखेगा गड़बड़ी हुई, अगर आपको टेस्ट यूज़र के तौर पर शामिल नहीं किए गए किसी Google खाते से लिंक करने की कोशिश करें आपके ऐप्लिकेशन के लिए. जांच करने वाले उपयोगकर्ता सेक्शन में Google खाता जोड़ना न भूलें OAuth की सहमति वाली स्क्रीन में.

पार्टनर कनेक्शन मैनेजर (पीसीएम) की गड़बड़ी

ऐक्सेस करते समय होने वाली किसी भी गड़बड़ी पर मदद के लिए PCM, देखें पार्टनर कनेक्शन मैनेजर (पीसीएम) गड़बड़ी का रेफ़रंस.

Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है

SDM API एक प्रतिबंधित दायरे का इस्तेमाल करता है, जिसका मतलब है कि कोई भी अनुमति देने के दौरान, इस दायरे का इस्तेमाल करने वाले ऐप्लिकेशन की "पुष्टि नहीं हुई होगी" के तौर पर सेट हो जाएगी जब तक OAuth का इस्तेमाल करके, एपीआई की पुष्टि पूरी हो गई है. इसके लिए Device Access का इस्तेमाल करते समय निजी इस्तेमाल के लिए, OAuth एपीआई की पुष्टि की ज़रूरत नहीं है.

आपको "Google ने इस ऐप्लिकेशन की पुष्टि नहीं की है" मैसेज दिख सकता है अनुमति देने के दौरान स्क्रीन प्रोसेस, जो तब दिखती है, जब sdm.service के स्कोप को कॉन्फ़िगर नहीं किया गया हो Google Cloud में, OAuth की सहमति वाली स्क्रीन. यह स्क्रीन इनमें से कोई भी हो सकती है: इसे बायपास करने के लिए, बेहतर विकल्प पर क्लिक करें और फिर 'प्रोजेक्ट' पर जाएं' पर क्लिक करें नाम (असुरक्षित).

पुष्टि नहीं किया गया ऐप्लिकेशन देखें स्क्रीन हमारा वीडियो देखें.

अमान्य क्लाइंट

ऐक्सेस या रीफ़्रेश टोकन पाने की कोशिश करते समय आपको "अमान्य क्लाइंट" अगर आपने गलत OAuth 2.0 क्लाइंट सीक्रेट दिया है, तो इस गड़बड़ी को ठीक करें. पक्का करें कि ऐक्सेस और रीफ़्रेश टोकन कॉल में इस्तेमाल की जा रही client_secret वैल्यू में से एक है के लिए, आपके Google क्लाउड क्रेडेंशियल करें.

अमान्य अनुरोध, ज़रूरी दायरा मौजूद नहीं है

PCM में अनुमति देने के बाद, आपके पास "अमान्य अनुरोध" "ज़रूरी पैरामीटर मौजूद नहीं है: स्कोप" की गड़बड़ी. पक्का करें कि अनुमति वाले कॉल में scope की वैल्यू वही है जो आपने OAuth 2.0 क्लाइंट के लिए सेट की है. जैसा कि आपके Google Cloud में मिला है क्रेडेंशियल करें.

रीडायरेक्ट यूआरआई मेल नहीं खाता

अनुमति देने के दौरान, आपको "दूसरे वेबलिंक पर भेजने वाले यूआरएल से मेल न खाने वाला" गड़बड़ी का सामना करना पड़ सकता है गड़बड़ी. पक्का करें कि अनुमति देने वाले कॉल में, redirect_uri वैल्यू का इस्तेमाल किया जा रहा है इसे OAuth 2.0 क्लाइंट के लिए सेट किया गया है, जैसा कि Google क्लाउड क्रेडेंशियल करें.

खाते की अनुमतियां बदलना

किसी Device Access प्रोजेक्ट को दी गई अनुमतियों में बदलाव करने या उसे डिसकनेक्ट करने के लिए पूरी तरह से, PCM पर जाएं:

https://nestservices.google.com/partnerconnections

इस पेज पर तीसरे पक्ष की सभी डेवलपर सेवाएं (Device Access प्रोजेक्ट) दिखती हैं आपके खाते से जुड़ा है. वह Device Access प्रोजेक्ट चुनें जो आपको चाहिए बदलें. अनुमतियों में अपने हिसाब से बदलाव करने के लिए, अगली स्क्रीन का इस्तेमाल करें.

किसी अधिकृत सेवा के लिए सिर्फ़ खास अनुमतियां रद्द करने के लिए, जिन अनुमतियों को रद्द करना है और उन्हें सेव करने के लिए, बैक ऐरो पर क्लिक करें.

किसी अधिकृत सेवा को पूरी तरह से डिसकनेक्ट करने के लिए, अपने Google को अलग करें पर क्लिक करें खाता, ताकि प्रोजेक्ट की सभी अनुमतियों और ऐक्सेस टोकन को रद्द किया जा सके खाते के लिए दी गई है.

अगर PCM मनचाहे सेवा को नहीं दिखाता है, तो आपको डिवाइस सूची कॉल करें.

झटपट संदर्भ

इस रेफ़रंस का इस्तेमाल करके, user और उनका Google खाता लिंक करें को अपनाएं.

इस क्विक रेफ़रंस का इस्तेमाल करने के लिए, कोड सैंपल में मौजूद हर प्लेसहोल्डर वैरिएबल में बदलाव करें डालें और ज़रूरत के मुताबिक कॉपी करें और चिपकाएं:

1 पीसीएम

इस लिंक को किसी वेब पर खोलें इसे बदला जा रहा है:

  1. आपके Device Access Project आईडी का इस्तेमाल project-id
  2. oauth2-client-id अपने OAuth2 क्लाइंट आईडी से Google क्लाउड क्रेडेंशियल
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=https://www.google.com&access_type=offline&prompt=consent&client_id=oauth2-client-id&response_type=code&scope=https://www.googleapis.com/auth/sdm.service

2 ऑथराइज़ेशन कोड

आपको यहां रीडायरेक्ट किया जाएगा https://www.google.com. ऑथराइज़ेशन कोड को यूआरएल में, code पैरामीटर के तौर पर दिखाया जाता है, जो इस फ़ॉर्मैट में होना चाहिए:

https://www.google.com?code=authorization-code&scope=https://www.googleapis.com/auth/sdm.service

3 ऐक्सेस टोकन

ऐक्सेस टोकन फिर से पाने के लिए, इस ऑथराइज़ेशन कोड का इस्तेमाल करें तो एसडीएम एपीआई को कॉल करने के लिए भी इसका इस्तेमाल किया जा सकता है.

टर्मिनल खोलें और चलाएं ये curl निर्देश, इसे बदल देगा:

  1. oauth2-client-id और oauth2-client-secret अपने ग्राहक आईडी और OAuth2 क्लाइंट आईडी के साथ Google क्लाउड क्रेडेंशियल
  2. पिछले चरण में मिले कोड का इस्तेमाल करके authorization-code

Google OAuth दो टोकन, एक ऐक्सेस टोकन और रीफ़्रेश टोकन.

अनुरोध

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=https://www.google.com'

जवाब

{
  "access_token": "access-token",
  "expires_in": 3599,
  "refresh_token": "refresh-token",
  "scope": "https://www.googleapis.com/auth/sdm.service",
  "token_type": "Bearer"
}

4 एपीआई कॉल

अनुमति देने की प्रोसेस तब तक पूरी नहीं होगी, जब तक आप आपका पहला devices.list कॉल करने के लिए अपने नए ऐक्सेस टोकन का इस्तेमाल करें. यह शुरुआती कॉल, अनुमति देने की प्रक्रिया पूरी करता है और अगर इवेंट को चालू किया जाता है, तो आपने पहले ही Pub/Sub सदस्यता सेट अप कर ली है.

आपको इनमें से किसी एक का इस्तेमाल करना होगा अनुमति देने की प्रोसेस को पूरा करने के लिए, तय किए गए दायरे के लिए सूची में शामिल एपीआई कॉल.

sdm.service

डिवाइस

ज़्यादा जानकारी के लिए, devices.list ज़्यादा जानकारी के लिए, एपीआई का रेफ़रंस.

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

5 रीफ़्रेश टोकन

सिर्फ़ एसडीएम एपीआई के लिए ऐक्सेस टोकन ही हैं एक घंटे के लिए मान्य होगा, जैसा कि Google OAuth से मिले expires_in पैरामीटर में बताया गया है. अगर आपने तो आपका ऐक्सेस टोकन खत्म हो जाएगा. नया टोकन पाने के लिए रीफ़्रेश टोकन का इस्तेमाल करें.

टर्मिनल खोलें और curl निर्देश का पालन किया जा रहा है. इसे ये बदला जा रहा है:

  1. oauth2-client-id और oauth2-client-secret अपने ग्राहक आईडी और OAuth2 क्लाइंट आईडी के साथ Google क्लाउड क्रेडेंशियल
  2. शुरुआत में ऐक्सेस पाते समय आपको मिले कोड से refresh-token टोकन.

Google OAuth नया ऐक्सेस टोकन दिखाता है.

अनुरोध

curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token'

जवाब

{
  "access_token": "new-access-token",
  "expires_in": 3599,
  "scope": "https://www.googleapis.com/auth/sdm.service",
  "token_type": "Bearer"
}