Google Cloud पर ARCore API का इस्तेमाल करना

प्लैटफ़ॉर्म चुनें:

भौगोलिक डेटा से जुड़े एपीआई और क्लाउड ऐंकर जैसी ARCore की सुविधाएं, Google Cloud पर होस्ट किए गए ARCore API का इस्तेमाल करती हैं. इन सुविधाओं का इस्तेमाल करते समय, आपका ऐप्लिकेशन ARCore API सेवा को ऐक्सेस करने के लिए क्रेडेंशियल का इस्तेमाल करता है.

इस क्विकस्टार्ट में बताया गया है कि ऐप्लिकेशन को कैसे सेट अप किया जाए, ताकि वह Google Cloud पर होस्ट की गई ARCore API सेवा से इंटरैक्ट कर सके.

नया Google Cloud प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का इस्तेमाल करें

अगर आपके पास कोई मौजूदा प्रोजेक्ट है, तो उसे चुनें.

प्रोजेक्ट सिलेक्टर पर जाएं

अगर आपके पास Google Cloud का कोई मौजूदा प्रोजेक्ट नहीं है, तो एक प्रोजेक्ट बनाएं.

नया प्रोजेक्ट बनाना

ARCore API चालू करना

ARCore API का इस्तेमाल करने के लिए, आपको इसे अपने प्रोजेक्ट में चालू करना होगा.

ARCore API चालू करना

अनुमति देने का तरीका सेट अप करना

Unity ऐप्लिकेशन, अनुमति देने के दो अलग-अलग तरीकों का इस्तेमाल करके ARCore API से संपर्क कर सकता है: कुंजी के बिना अनुमति देना, जो सुझाया गया तरीका है और API Key की अनुमति देना:

  • Android पर, कुंजी के बिना अनुमति देने की सुविधा में, ऐप्लिकेशन के पैकेज के नाम और साइनिंग पासकोड के फ़िंगरप्रिंट का इस्तेमाल किया जाता है. ऐसा आपके ऐप्लिकेशन को अनुमति देने के लिए किया जाता है.

    iOS पर, बिना कुंजी के पुष्टि करने की सुविधा, एपीआई के ऐक्सेस को कंट्रोल करने के लिए साइन किए गए टोकन का इस्तेमाल करती है. इस तरीके में, आपके मालिकाना हक वाले सर्वर को टोकन पर हस्ताक्षर करने होंगे और एपीआई के ऐक्सेस को कंट्रोल करना होगा.

  • एपीआई पासकोड वह स्ट्रिंग होती है जो Google Cloud प्रोजेक्ट की पहचान करती है. आम तौर पर, एपीआई कुंजियों को सुरक्षित नहीं माना जाता, क्योंकि आम तौर पर इन्हें क्लाइंट ऐक्सेस कर सकते हैं. ARCore API से संपर्क करने के लिए, कुंजी के बिना पुष्टि करने की सुविधा का इस्तेमाल करें.

चाबी के बिना

कीलेस ऑथेंटिकेशन सुविधा का इस्तेमाल करके अपने ऐप्लिकेशन को अनुमति देने के लिए, OAuth 2.0 क्लाइंट आईडी बनाएं.

साइनिंग कुंजी के फ़िंगरप्रिंट का पता लगाएं

OAuth 2.0 क्लाइंट आईडी, आपके ऐप्लिकेशन की पहचान करने के लिए, ऐप्लिकेशन के साइनिंग पासकोड के फ़िंगरप्रिंट का इस्तेमाल करता है.

डीबग साइनिंग फ़िंगरप्रिंट पाने का तरीका

अपने प्रोजेक्ट को चलाते या डीबग करते समय, Android SDK टूल आपके ऐप्लिकेशन को अपने-आप जनरेट किए गए डीबग सर्टिफ़िकेट की मदद से साइन करते हैं.

डीबग सर्टिफ़िकेट फ़िंगरप्रिंट पाने के लिए, यहां दिए गए निर्देश का इस्तेमाल करें.

Mac/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
Windows
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

keytool उपयोगिता आपको कीस्टोर के लिए पासवर्ड डालने का संकेत देती है. डीबग कीस्टोर का डिफ़ॉल्ट पासवर्ड android है. इसके बाद, keytool यूटिलिटी टर्मिनल पर फ़िंगरप्रिंट को प्रिंट करती है. उदाहरण के लिए:

   Certificate fingerprint: SHA1: <strong>DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

कीस्टोर से साइनिंग फ़िंगरप्रिंट पाने का तरीका

अगर आपके पास कीस्टोर फ़ाइल है, तो फ़िंगरप्रिंट का पता लगाने के लिए keytool यूटिलिटी का इस्तेमाल करें.

keytool -list -v -alias your-key-name -keystore path-to-production-keystore

इसके बाद, keytool यूटिलिटी फ़िंगरप्रिंट को टर्मिनल पर प्रिंट करती है. उदाहरण के लिए:

   Certificate fingerprint: SHA1: DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

'Play ऐप्लिकेशन साइनिंग' से अपने ऐप्लिकेशन का साइनिंग पासकोड पाने का तरीका

Play ऐप्लिकेशन साइनिंग का इस्तेमाल करते समय, Google आपके ऐप्लिकेशन के साइनिंग पासकोड को मैनेज करता है और उसका इस्तेमाल आपके APKs पर साइन करने के लिए करता है. इस डिजिटल बटन का इस्तेमाल, साइनिंग फ़िंगरप्रिंट के लिए किया जाना चाहिए.

  1. Google Play Console में ऐप्लिकेशन साइनिंग पेज पर, स्क्रोल करके ऐप्लिकेशन साइनिंग पासकोड के सर्टिफ़िकेट पर जाएं.
  2. SHA-1 प्रमाणपत्र फ़िंगरप्रिंट का इस्तेमाल करें.

OAuth 2.0 क्लाइंट आईडी बनाना

पिछले चरणों में लागू किए गए हर साइनिंग पासकोड के लिए, अपने Google Cloud प्रोजेक्ट के क्रेडेंशियल में OAuth 2.0 क्लाइंट आईडी बनाएं.

  • Google Cloud में, क्रेडेंशियल पेज खोलें.

    क्रेडेंशियल

  • क्रेडेंशियल बनाएं पर क्लिक करें. इसके बाद, मेन्यू से OAuth क्लाइंट आईडी चुनें.

  • ज़रूरी फ़ील्ड इस तरह भरें:

    • ऐप्लिकेशन का प्रकार: Android चुनें.
    • पैकेज का नाम: अपने AndroidManifest.xml में बताए गए तरीके से पैकेज के नाम का इस्तेमाल करें.
    • SHA-1 सर्टिफ़िकेट फ़िंगरप्रिंट: पिछले चरणों में मिले फ़िंगरप्रिंट का इस्तेमाल करें.
  • बनाएं दबाएं.

ज़रूरी लाइब्रेरी शामिल करें

  1. अपने ऐप्लिकेशन की डिपेंडेंसी में com.google.android.gms:play-services-auth:16+ शामिल करें.
  2. अगर कोड छोटा करने का इस्तेमाल किया जा रहा है, तो इसे अपने ऐप्लिकेशन की build.gradle फ़ाइल में जोड़ें:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. अपने ऐप्लिकेशन की proguard-rules.pro फ़ाइल में यह जोड़ें:

    -keep class com.google.android.gms.common.** { *; }
    -keep class com.google.android.gms.location.** { *; }
    -keep class com.google.android.gms.auth.** { *; }
    -keep class com.google.android.gms.tasks.** { *; }
    

आपके ऐप्लिकेशन को अब बिना चाबी के पुष्टि करने की सुविधा का इस्तेमाल करने के लिए कॉन्फ़िगर कर दिया गया है.

चाबी के बिना

ARCore, (JSON वेब टोकन) का इस्तेमाल करके, iOS में एपीआई कॉल की अनुमति देता है. टोकन पर Google सेवा खाते से हस्ताक्षर किया जाना चाहिए.

iOS के लिए टोकन जनरेट करने के लिए, आपके सर्वर पर ऐसा एंडपॉइंट होना चाहिए जो नीचे दी गई ज़रूरी शर्तों को पूरा करता हो:

  • अनुमति देने के आपके तरीके से, एंडपॉइंट की सुरक्षा करनी चाहिए.

  • एंडपॉइंट को हर बार एक नया टोकन जनरेट करना होगा, जैसे:

    • हर उपयोगकर्ता को एक यूनीक टोकन मिलता है.
    • टोकन की समयसीमा तुरंत खत्म नहीं होती.

सेवा खाता और साइनिंग पासकोड बनाना

Google सेवा खाता और साइनिंग पासकोड बनाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud में, क्रेडेंशियल पेज खोलें.
    क्रेडेंशियल
  2. क्रेडेंशियल बनाएं > सेवा खाता पर क्लिक करें.
  3. सेवा खाते की जानकारी में, नए खाते के लिए एक नाम लिखें, फिर बनाएं पर क्लिक करें.
  4. सेवा खाते की अनुमतियों वाले पेज पर, कोई भूमिका चुनें ड्रॉप-डाउन पर जाएं. सेवा खाते > सेवा खाता टोकन क्रिएटर चुनें. इसके बाद, 'जारी रखें' पर क्लिक करें.
  5. उपयोगकर्ताओं को इस सेवा खाते का ऐक्सेस दें पेज पर, 'हो गया' पर क्लिक करें.
  6. क्रेडेंशियल पेज पर, सेवा खाते सेक्शन पर जाएं और अभी-अभी बनाए गए खाते के नाम पर क्लिक करें.
  7. सेवा खाते की जानकारी पेज पर, नीचे की ओर स्क्रोल करके 'की' सेक्शन तक जाएं और कुंजी जोड़ें > नई कुंजी बनाएं चुनें.
  8. कुंजी के टाइप के तौर पर JSON चुनें और बनाएं पर क्लिक करें.

    इससे एक JSON फ़ाइल डाउनलोड हो जाएगी, जिसमें आपकी मशीन की निजी कुंजी होगी. डाउनलोड की गई JSON कुंजी फ़ाइल को किसी सुरक्षित जगह पर सेव करें.

अपने सर्वर पर टोकन बनाएं

अपने सर्वर पर नए टोकन (JWT) बनाने के लिए, स्टैंडर्ड JWT लाइब्रेरी और उस JSON फ़ाइल का इस्तेमाल करें जिसे आपने अपने नए सेवा खाते से सुरक्षित तरीके से डाउनलोड किया है.

अपनी डेवलपमेंट मशीन पर टोकन बनाएं

अपनी डेवलपमेंट मशीन पर JWT जनरेट करने के लिए, यहां दिए गए oauth2l कमांड का इस्तेमाल करें:

oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

--cache फ़्लैग का इस्तेमाल करके, कैश मेमोरी की खाली जगह के बारे में बताना ज़रूरी है. इससे यह पक्का किया जा सकता है कि हर बार एक अलग टोकन बनाया जाए. नतीजे वाली स्ट्रिंग में काट-छांट कर लें. ज़रूरत से ज़्यादा स्पेस या न्यूलाइन वर्णों की वजह से एपीआई, टोकन को अस्वीकार कर देगा.

टोकन पर हस्ताक्षर करें

JWT पर हस्ताक्षर करने के लिए, आपको RS256 एल्गोरिदम और इन दावों का इस्तेमाल करना होगा:

  • iss — सेवा खाते का ईमेल पता.
  • sub — सेवा खाते का ईमेल पता.
  • iat — Unix epoch टाइम, वह समय जब टोकन जनरेट किया गया था (सेकंड में).
  • expiat + 3600 (1 घंटा). सेकंड में, टोकन की समयसीमा खत्म होने का Unix epoch समय.
  • aud — दर्शक. इसे https://arcore.googleapis.com/ पर सेट किया जाना चाहिए.

JWT पेलोड में गैर-मानक दावों की ज़रूरत नहीं है. हालांकि, आपके लिए uid दावे से मिलते-जुलते उपयोगकर्ता की पहचान करना उपयोगी हो सकता है.

अगर जेडब्लयूटी जनरेट करने के लिए कोई दूसरा तरीका इस्तेमाल किया जाता है, जैसे कि Google से मैनेज किए जाने वाले एनवायरमेंट में Google API का इस्तेमाल करना, तो इस सेक्शन में दिए गए दावों के साथ अपने JWT ज़रूर साइन करें. इन सबसे ऊपर, पक्का करें कि ऑडियंस सही है.

ARCore सेशन में टोकन पास करें

  1. पक्का करें कि iOS की पुष्टि करने की रणनीति AuthenticationToken पर सेट हो. Unity में, बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं. iOS की पुष्टि करने की रणनीति वाले ड्रॉप-डाउन मेन्यू में, पुष्टि करने वाला टोकन विकल्प चुनें.
  2. जब आपको टोकन मिल जाता है, तो उसे ARAnchorManager.SetAuthToken() का इस्तेमाल करके अपने ARCore सेशन में पास करें:

    // Designate the token to authorize ARCore API calls
    // on the iOS platform. This should be called each time the application's token is refreshed.
    ARAnchorManager.SetAuthToken(authToken);
    

आपके ऐप्लिकेशन को अब बिना चाबी के पुष्टि करने की सुविधा का इस्तेमाल करने के लिए कॉन्फ़िगर कर दिया गया है.

सेशन में टोकन पास करते समय इन बातों का ध्यान रखें:

  • अगर आपने सेशन बनाने के लिए किसी एपीआई पासकोड का इस्तेमाल किया है, तो ARCore टोकन को अनदेखा कर देगा और गड़बड़ी लॉग कर देगा.

    अगर अब आपको एपीआई पासकोड की ज़रूरत नहीं है, तो उसे Google Developers कंसोल में जाकर मिटा दें और अपने ऐप्लिकेशन से हटा दें.

  • ARCore उन टोकन को अनदेखा करता है जिनमें स्पेस या खास वर्ण होते हैं.

  • आम तौर पर, टोकन की समयसीमा एक घंटे बाद खत्म हो जाती है. अगर इस बात की संभावना है कि इस्तेमाल के दौरान आपका टोकन खत्म हो सकता है, तो एक नया टोकन पाएं और उसे एपीआई पर भेजें.

API (एपीआई) कुंजी

  1. Google Cloud में, क्रेडेंशियल पेज खोलें.
    क्रेडेंशियल
  2. क्रेडेंशियल बनाएं पर क्लिक करें. इसके बाद, मेन्यू से एपीआई पासकोड चुनें.
    एपीआई पासकोड से बनाया गया डायलॉग बॉक्स, आपकी बनाई गई नई कुंजी की स्ट्रिंग दिखाता है.
  3. Unity में, बदलाव करें > प्रोजेक्ट सेटिंग > XR प्लग-इन मैनेजमेंट > ARCore एक्सटेंशन पर जाएं. हर टारगेट प्लैटफ़ॉर्म (Android, iOS) के लिए, पुष्टि करने की रणनीति वाले ड्रॉप-डाउन मेन्यू में, एपीआई पासकोड का विकल्प चुनें. इसके बाद, एपीआई पासकोड वाले फ़ील्ड में अपना एपीआई पासकोड डालें.

  4. अपनी एपीआई पासकोड को सुरक्षित रखने के लिए, एपीआई पासकोड से जुड़ी पाबंदियों से जुड़ा दस्तावेज़ देखें.

आपका ऐप्लिकेशन अब एपीआई पासकोड का इस्तेमाल करने के लिए कॉन्फ़िगर हो गया है.

आगे क्या करना है

अनुमति कॉन्फ़िगर होने के बाद, ARCore की ये सुविधाएं देखें, जो इसका इस्तेमाल करती हैं: