Google Cloud'da ARCore API'yi kullanma

Platform seçin:

Geospatial API ve Cloud Anchor, Google Cloud'da barındırılan ARCore API. Bu özellikleri kullanırken uygulamanız ARCore API hizmetine erişmek için kimlik bilgilerini kullanır.

Bu hızlı başlangıç kılavuzunda, uygulamanızın Google Cloud'da barındırılan ARCore API hizmetiyle iletişim kurma.

Yeni bir Google Cloud projesi oluşturun veya mevcut bir projeyi kullanın

Mevcut bir projeniz varsa bu projeyi seçin.

Proje seçiciye git

Mevcut bir Google Cloud projeniz yoksa yeni bir proje oluşturun.

Yeni proje oluştur

ARCore API'yi etkinleştirme

ARCore API'yi kullanmak için projenizde etkinleştirmeniz gerekir.

ARCore API'yi etkinleştirme

Yetkilendirme yöntemi ayarlama

Bir Unity uygulaması ARCore API ile iletişim kurmak için iki farklı yetkilendirme yöntemleri: Anahtarsız yetkilendirme, önerilen yöntem ve API anahtarı yetkilendirmesi:

  • Android'de, Anahtarsız Yetkilendirme, uygulamanın paket adının bir kombinasyonunu kullanır imzalamanız gerekir.

    iOS'te Anahtarsız yetkilendirme, API'ye erişimi kontrol etmek için imzalı bir jeton kullanır. Bu yöntemi, jetonları imzalamak ve aşağıdakilere erişimi kontrol etmek için size ait bir sunucunun API.

  • API anahtarı, Google Cloud projesini tanımlayan bir dizedir. API anahtarları Genellikle müşteriler tarafından erişilebilir olduklarından genellikle güvenli olarak kabul edilmez. ARCore API ile iletişim kurmak için Anahtarsız yetkilendirmeyi kullanmayı düşünün.

Anahtarsız

Anahtarsız kimlik doğrulamayı kullanarak uygulamanızı yetkilendirmek için OAuth 2.0 istemcisi oluşturun Kimlikler.

İmzalama anahtarı parmak izlerini belirleme

OAuth 2.0 istemci kimliği, kimliğinizi tanımlamak için uygulamanızın imzalama anahtarı parmak izini kullanır. uygulamasını indirin.

Hata ayıklama imzalama parmak izinizi alma

Android SDK araçları, projenizi çalıştırırken veya hata ayıklarken otomatik olarak bir hata ayıklama sertifikasıyla uygulamanızı öneririz.

Hata ayıklama sertifikası parmak izini almak için aşağıdaki komutu kullanın.

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

keytool yardımcı programı, anahtar deposu için bir şifre girmenizi ister. İlgili içeriği oluşturmak için kullanılan hata ayıklama anahtar deposu için varsayılan şifre android şeklindedir. Ardından, keytool yardımcı programı parmak izini terminale yazdırır. Örneğin:

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

Anahtar deposundan imzalama parmak izi alma

Bir anahtar deposu dosyanız varsa parmak izini belirlemek için keytool yardımcı programını kullanın.

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

Ardından keytool yardımcı programı parmak izini terminale yazdırır. Örneğin:

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

Play Uygulama İmzalama'dan uygulamanızın imzalama anahtarını alma

Play Uygulama İmzalama'yı kullanırken Google, uygulamanızın imzalama anahtarını yönetir ve APK'larınızı imzalamak için bu anahtarı kullanır. İmzalama parmak izi için bu anahtar kullanılmalıdır.

  1. Google Play Console'daki Uygulama İmzalama sayfasında Uygulama imzalama anahtarı sertifikası'na gidin.
  2. SHA-1 sertifika parmak izini kullanın.

OAuth 2.0 istemci kimlikleri oluşturma

Önceki adımlarda bulunan geçerli her bir imzalama anahtarı için Google Cloud projesinin kimlik bilgileri.

  • Google Cloud'da Kimlik Bilgileri sayfasını açın.

    Kimlik bilgileri

  • Create credentials'ı (Kimlik bilgileri oluştur) tıklayın ve menüden OAuth istemci kimliği'ni seçin.

  • Zorunlu alanları aşağıdaki gibi doldurun:

    • Uygulama türü: Android'i seçin.
    • Paket adı: Paket adını AndroidManifest.xml dosyanızda belirtildiği şekilde kullanın.
    • SHA-1 sertifika dijital parmak izi: Önceki adımlarda aldığınız bir parmak izini kullanın.
  • Oluştur'a basın.

Gerekli kitaplıkları dahil et

  1. Uygulamanızın bağımlılıklarına com.google.android.gms:play-services-auth:16+ ekleyin.
  2. Kod küçültme kullanıyorsanız uygulamanızın build.gradle dosyasına ekleyin:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. Aşağıdakileri uygulamanızın proguard-rules.pro dosyasına ekleyin:

    -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.** { *; }
    

Uygulamanız artık Anahtarsız kimlik doğrulamayı kullanacak şekilde yapılandırıldı.

Anahtarsız

ARCore, iOS'te API çağrılarının yetkilendirilmesini bir (JSON Web jetonu). Jeton, bir Google tarafından imzalanmalıdır. Hizmet hesabı.

iOS için jeton oluşturmak üzere sunucunuzda bir uç noktanız olmalıdır şu şartları karşıladığını kontrol edin:

  • Kendi yetkilendirme mekanizmanız uç noktayı korumalıdır.

  • Uç nokta, her seferinde yeni bir jeton oluşturmalıdır. Örneğin:

    • Her kullanıcı benzersiz bir jeton alır.
    • Jetonların geçerlilik süresi hemen dolmaz.

Hizmet hesabı ve imzalama anahtarı oluşturma

Google hizmet hesabı ve imzalama anahtarı oluşturmak için şu adımları uygulayın:

  1. Google Cloud'da Kimlik Bilgileri sayfasını açın.
    Kimlik bilgileri
  2. Kimlik Bilgisi Oluştur > Hizmet hesabı.
  3. Hizmet hesabı ayrıntıları bölümünde, yeni hesap için bir ad yazın ve ardından Oluştur.
  4. Hizmet hesabı izinleri sayfasında Rol seçin açılır listesine gidin. Service Accounts > (Hizmet Hesapları) > Hizmet Hesabı Jetonu Oluşturucu'yu seçin, ardından Devam.
  5. Kullanıcıların bu hizmet hesabına erişmesine izin ver sayfasında Bitti'yi tıklayın.
  6. Kimlik bilgileri bölümünde Hizmet Hesapları bölümünü bulun ve hesabın adını tıklayın oluşturmanız gerekir.
  7. Hizmet hesabı ayrıntıları sayfasında Anahtarlar bölümüne ilerleyin ve Anahtar Ekle > Yeni anahtar oluştur.
  8. Anahtar türü olarak JSON'yi seçin ve Oluştur'u tıklayın.

    Bu işlem, özel anahtarı içeren bir JSON dosyasını makinenize indirir. Mağaza indirilen JSON anahtar dosyasını güvenli bir konuma yerleştirin.

Sunucunuzda jetonlar oluşturun

Sunucunuzda yeni jetonlar (JWT'ler) oluşturmak için standart JWT'yi kullanın. kütüphaneler ve yeni hizmet hesabınızdan güvenli bir şekilde indirdiğiniz JSON dosyası.

Geliştirme makinenizde jeton oluşturun

Geliştirme makinenizde JWT oluşturmak için şunu kullanın: oauth2l komutu:

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

Aşağıdaki işlemler için --cache işaretini kullanarak boş bir önbellek konumu belirtmek gerekir: her seferinde farklı bir jeton oluşturulduğundan emin olun. elde edilen dizeyi kullanır. Fazladan boşluklar veya yeni satır karakterleri, API'nin jetonu reddetme başlıklı makaleye bakın.

Jetonu imzalayın

JWT'yi imzalamak için RS256 algoritmasını ve aşağıdaki iddiaları kullanmanız gerekir:

  • iss — Hizmet hesabı e-posta adresi.
  • sub — Hizmet hesabı e-posta adresi.
  • iat — Jetonun oluşturulduğu saniye cinsinden Unix sıfır zamanı.
  • expiat + 3600 (1 saat). Jetonun süresinin dolacağı Unix dönem saati, sağlar.
  • aud — Kitle. Şu şekilde ayarlanmalıdır: https://arcore.googleapis.com/.

Standart olmayan iddialar JWT yükünde gerekli değildir ancak uid hak talebi, ilgili kullanıcıyı tanımlamak için kullanışlıdır.

JWT'lerinizi oluşturmak için farklı bir yaklaşım kullanıyorsanız (ör. Google API kullanıyorsanız, JWT'lerinizi ilgili hak talepleriyle imzaladığınızdan emin olun. ele alacağız. Her şeyden önemlisi, hedef kitlenin doğruluğundan emin olun.

Jetonu ARCore oturumunda iletme

  1. iOS Kimlik Doğrulama Stratejisi'nin AuthenticationToken'ı seçin. Unity'de Düzenle'ye gidin > Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları. iOS Kimlik Doğrulama Stratejisi açılır listesinden menüsünde, Authentication Token (Kimlik Doğrulama Jetonu) seçeneğini belirleyin.
  2. Jeton aldığınızda, aşağıdakileri kullanarak bu jetonu ARCore oturumunuza iletin: 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);
    

Uygulamanız artık Anahtarsız kimlik doğrulamayı kullanacak şekilde yapılandırıldı.

Oturuma jeton iletirken aşağıdakileri göz önünde bulundurun:

  • Oturumu oluşturmak için bir API anahtarı kullandıysanız ARCore, ve bir hata kaydedin.

    Artık API anahtarına ihtiyacınız yoksa Google Developers'dan API anahtarını silin Console'u kullanarak uygulamasını indirin.

  • ARCore, boşluk veya özel karakterler içeren jetonları yoksayar.

  • Jetonların süresi genellikle bir saat sonra dolar. Sizin durumunuz kullanımdayken geçerliliğini yitirebilir, yeni bir jeton alıp API'ye iletebilir.

API Anahtarı

  1. Google Cloud'da Kimlik Bilgileri sayfasını açın.
    Kimlik bilgileri
  2. Create credentials'ı (Kimlik bilgileri oluştur) tıklayın ve menüden API key'i (API anahtarı) seçin.
    API anahtarı oluşturuldu iletişim kutusu, yeni oluşturulan anahtarınızın dizesini gösterir.
  3. Unity'de Düzenle'ye gidin > Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları. Her bir hedef platform (Android, iOS) için Kimlik Doğrulama Stratejisi açılır menüsünden API Anahtarı'nı seçin. Ardından, API anahtarınızı API anahtarı alanlarına ekleyin.

  4. API anahtarı kısıtlamalarıyla ilgili belgeleri inceleyin (API anahtarınızın güvenliğini sağlayın).

Uygulamanız artık API anahtarları kullanacak şekilde yapılandırıldı.

Sırada ne var?

Yetkilendirme yapılandırıldıktan sonra şunları sağlar: