Google Cloud'da ARCore API'yi kullanma

Platform seçin:

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

Bu hızlı başlangıç kılavuzunda, uygulamanızı Google Cloud'da barındırılan ARCore API hizmetiyle iletişim kuracak şekilde nasıl ayarlayacağınız açıklanmaktadır.

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

Mevcut bir projeniz varsa seçin.

Proje seçiciye git

Google Cloud projeniz yoksa yeni bir proje oluşturun.

Yeni proje oluştur

ARCore API'yi etkinleştir

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

ARCore API'yi etkinleştirme

Yetkilendirme yöntemi ayarlama

Bir Unity uygulaması, ARCore API'si ile iki farklı yetkilendirme yöntemi kullanarak iletişim kurabilir: önerilen yöntem olan Anahtarsız yetkilendirme ve API Anahtarı yetkilendirmesi:

  • Android'de Anahtarsız yetkilendirme, uygulamanızı yetkilendirmek için uygulamanın paket adı ve imzalama anahtarının parmak izinden oluşan bir kombinasyon kullanır.

    iOS'te Anahtarsız yetkilendirme, API'ye erişimi kontrol etmek için imzalanmış bir jeton kullanır. Bu yöntemde, jetonları imzalamak ve API'ye erişimi kontrol etmek için size ait bir sunucu gerekir.

  • API anahtarı, Google Cloud projelerini tanımlayan bir dizedir. API anahtarları, genellikle istemciler tarafından erişilebilir olduğundan genellikle güvenli kabul edilmez. ARCore API ile iletişim kurmak için anahtarsız yetkilendirmeyi kullanmayı düşünün.

Anahtarsız

Uygulamanızı Anahtarsız kimlik doğrulama kullanarak yetkilendirmek için OAuth 2.0 istemci kimlikleri oluşturun.

İmzalama anahtarı parmak izlerini belirleyin

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

Hata ayıklama imzalı parmak izinizi alma

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

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. Hata ayıklama anahtar deposu için varsayılan şifre android şeklindedir. Daha sonra 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 imza parmak izi nasıl alınır?

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

Daha sonra 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 kullanılırken Google, uygulamanızın imzalama anahtarını yönetir ve APK'larınızı imzalamak için kullanır. Bu anahtar, imzalama parmak izi için 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 geçerli olan her imzalama anahtarı için Google Cloud projenizin kimlik bilgilerinde bir OAuth 2.0 istemci kimliği oluşturun.

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

    Kimlik bilgileri

  • Kimlik bilgileri oluştur'u tıklayın, ardından 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ı: AndroidManifest.xml dosyanızda belirtilen paket adını kullanın.
    • SHA-1 sertifika parmak izi: Önceki adımlarda edindiğiniz bir parmak izi 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 bunu uygulamanızın build.gradle dosyasına ekleyin:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. Uygulamanızın proguard-rules.pro dosyasına aşağıdakileri 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ğrulama kullanacak şekilde yapılandırılmış.

Anahtarsız

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

iOS için jeton oluşturmak üzere sunucunuzda aşağıdaki gereksinimleri karşılayan bir uç noktanızın olması gerekir:

  • Kendi yetkilendirme sisteminizin uç noktayı koruması gerekir.

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

    • Her kullanıcı benzersiz bir jeton alır.
    • Jetonların 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ı'nı tıklayın.
  3. Hizmet hesabı ayrıntıları bölümünde, yeni hesap için bir ad yazıp Oluştur'u tıklayın.
  4. Hizmet hesabı izinleri sayfasında Bir rol seçin açılır menüsüne gidin. Hizmet Hesapları > Hizmet Hesabı Jeton Oluşturucu'yu seçin ve Devam'ı tıklayın.
  5. Kullanıcıların bu hizmet hesabına erişmesine izin ver sayfasında Bitti'yi tıklayın.
  6. Kimlik Bilgileri sayfasında, Hizmet Hesapları bölümünü bulun ve az önce oluşturduğunuz hesabın adını tıklayın.
  7. Hizmet hesabı ayrıntıları sayfasında Anahtarlar bölümüne ilerleyin ve Anahtar Ekle > Yeni anahtar oluştur'u seçin.
  8. Anahtar türü olarak JSON'yi seçin ve Oluştur'u tıklayın.

    Bu işlem, makinenizin özel anahtarını içeren bir JSON dosyası indirir. İndirilen JSON anahtar dosyasını güvenli bir yerde saklayın.

Sunucunuzda jeton oluşturun

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

Geliştirme makinenizde jeton oluşturma

Geliştirme makinenizde JWT oluşturmak için aşağıdaki oauth2l komutunu kullanın:

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

Her defasında farklı bir jetonun üretilmesini sağlamak için --cache işaretini kullanarak boş bir önbellek konumu belirtmek gerekir. Ortaya çıkan dizeyi kırpmayı unutmayın. Fazladan boşluklar veya yeni satır karakterleri API'nin jetonu reddetmesine neden olur.

Jetonu imzalayın

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

  • iss: Hizmet hesabı e-posta adresi.
  • sub: Hizmet hesabı e-posta adresi.
  • iat: Jetonun oluşturulduğu Unix sıfır zamanı (saniye cinsinden).
  • exp - iat + 3600 (1 saat). Jetonun süresinin dolacağı Unix sıfır zamanı (saniye cinsinden).
  • aud: Kitle. Ayarlanmalıdır https://arcore.googleapis.com/.

JWT yükünde standart olmayan iddialar gerekli değildir ancak uid iddiasını ilgili kullanıcıyı tanımlamak için yararlı bulabilirsiniz.

JWT'lerinizi oluşturmak için Google tarafından yönetilen bir ortamda Google API'si gibi farklı bir yaklaşım kullanıyorsanız JWT'lerinizi bu bölümdeki hak talepleriyle imzaladığınızdan emin olun. En önemlisi, hedef kitlenin doğru olduğundan emin olun.

Jetonu ARCore oturumunda iletin

  1. iOS Kimlik Doğrulama Stratejisi'nin IdentityToken olarak ayarlandığından emin olun. Unity'de Düzenle > Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları'na gidin. iOS Kimlik Doğrulama Stratejisi açılır menüsünde Kimlik Doğrulama Jetonu'nu seçin.
  2. Aldığınız jetonları, ARAnchorManager.SetAuthToken() kullanarak ARCore oturumunuza iletin:

    // 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ğrulama kullanacak şekilde yapılandırılmış.

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

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

    API anahtarına artık ihtiyacınız yoksa anahtarı Google Developers Console'dan silin ve uygulamanızdan kaldırın.

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

  • Jetonların süresi genellikle bir saat sonra dolar. Jetonunuzun kullanım sırasında süresinin dolma olasılığı varsa yeni bir jeton edinin ve bunu API'ye iletin.

API Anahtarı

  1. Google Cloud'da Kimlik bilgileri sayfasını açın.
    Kimlik bilgileri
  2. Kimlik bilgileri oluştur'u tıklayın, ardından menüden API anahtarı'nı seçin.
    API anahtarı oluşturuldu iletişim kutusu, yeni oluşturduğunuz anahtarın dizesini görüntüler.
  3. Unity'de Düzenle > Proje Ayarları > XR Eklenti Yönetimi > ARCore Uzantıları'na gidin. Her hedef platform (Android, iOS) için Kimlik Doğrulama Stratejisi açılır menüsünde API Anahtarı seçeneğini belirleyin. Ardından API anahtarınızı API anahtarı alanlarına girin.

  4. API anahtarınızı güvence altına almak için API anahtarı kısıtlamaları ile ilgili belgeleri inceleyin.

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

Sırada ne var?

Yetkilendirme yapılandırılmışsa onu kullanan aşağıdaki ARCore özelliklerine göz atın: