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

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

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

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

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

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

प्रोजेक्ट चुनने वाले टूल पर जाएं

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

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

ARCore API चालू करना

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

ARCore API चालू करना

पुष्टि करने का तरीका सेट अप करना

Unity ऐप्लिकेशन, ARCore API के साथ दो अलग-अलग तरीकों से कम्यूनिकेट कर सकता है: बिना कुंजी के अनुमति देना, जो कि सुझाया गया तरीका है. दूसरा तरीका है, एपीआई कुंजी की मदद से अनुमति देना:

  • 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 आपके ऐप्लिकेशन के साइनिंग पासकोड को मैनेज करता है और इसका इस्तेमाल आपके APK को साइन करने के लिए करता है. इस कुंजी का इस्तेमाल, हस्ताक्षर के फ़िंगरप्रिंट के लिए किया जाना चाहिए.

  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, iOS में एपीआई कॉल के लिए अनुमति देने की सुविधा देता है. इसके लिए, (JSON Web Token) का इस्तेमाल किया जाता है. टोकन पर 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 दावा, संबंधित उपयोगकर्ता की पहचान करने के लिए काम का लग सकता है.

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

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

  1. पक्का करें कि iOS Authentication Strategy को AuthenticationToken पर सेट किया गया हो. Unity में, Edit > Project Settings > XR Plug-in Management > ARCore Extensions पर जाएं. iOS Authentication Strategy ड्रॉप-डाउन मेन्यू में जाकर, Authentication Token विकल्प चुनें.
  2. टोकन मिलने के बाद, उसे ARCore सेशन में पास करें. इसके लिए, ARAnchorManager.SetAuthToken() का इस्तेमाल करें:

    // 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 Console से मिटा दें. साथ ही, उसे अपने ऐप्लिकेशन से भी हटा दें.

  • ARCore, स्पेस या खास वर्णों वाले टोकन को अनदेखा करता है.

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

एपीआई पासकोड

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

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

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

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

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