Utilizzare l'API ARCore su Google Cloud

Seleziona la piattaforma: .

Funzionalità ARCore come il campo Geospaziale API e Cloud Anchor utilizzano API ARCore ospitata su Google Cloud. Quando utilizzi queste funzioni, la tua applicazione utilizza le credenziali per accedere al servizio API ARCore.

Questa guida rapida descrive come configurare la tua applicazione in modo che possa comunicare con il servizio API ARCore ospitato su Google Cloud.

Crea un nuovo progetto Google Cloud o utilizzane uno esistente

Se hai già un progetto, selezionalo.

Vai al selettore progetti

Se non hai già un progetto Google Cloud, creane uno.

Crea nuovo progetto

Abilita l'API ARCore

Per utilizzare l'API ARCore, devi abilitarla nel tuo progetto.

Abilita l'API ARCore

Configurare un metodo di autorizzazione

Un'applicazione Unity può comunicare con l'API ARCore utilizzando due diverse metodi di autorizzazione: autorizzazione senza chiave, il metodo consigliato e l'autorizzazione della chiave API:

  • Su Android, l'autorizzazione senza chiave utilizza una combinazione del nome del pacchetto dell'applicazione e l'impronta della chiave di firma per autorizzare l'applicazione.

    Su iOS, l'autorizzazione senza chiave utilizza un token firmato per controllare l'accesso all'API. Questo richiede un server di tua proprietà per firmare i token e controllare l'accesso a l'API.

  • Una chiave API è una stringa che identifica un progetto Google Cloud. Le chiavi API sono generalmente non considerati sicuri in quanto sono generalmente accessibili ai clienti. Valuta la possibilità di utilizzare l'autorizzazione senza chiave per comunicare con l'API ARCore.

Senza chiave

Per autorizzare l'app utilizzando l'autenticazione senza chiave, crea un client OAuth 2.0 ID.

Determinare le impronte delle chiavi di firma

L'ID client OAuth 2.0 utilizza l'impronta della chiave di firma dell'app per identificare dell'app.

Come ottenere l'impronta della firma di debug

Durante l'esecuzione o il debug del progetto, gli strumenti dell'SDK Android firmano automaticamente con un certificato di debug generato.

Usa il comando seguente per ottenere l'impronta digitale del certificato di debug.

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

L'utilità keytool richiede di inserire una password per l'archivio chiavi. La la password predefinita per l'archivio chiavi di debug è android. L'utilità keytool quindi stampa l'impronta sul terminale. Ad esempio:

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

Come ottenere un'impronta di firma da un archivio chiavi

Se hai un file di archivio chiavi, usa l'utilità keytool per determinare l'impronta.

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

L'utility keytool stampa quindi l'impronta sul terminale. Ad esempio:

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

Come ottenere la chiave di firma dell'app dalla firma dell'app di Google Play

Quando utilizzi la firma dell'app di Google Play, Google gestisce la chiave di firma della tua app e la utilizza per firmare gli APK. Questa chiave deve essere utilizzata per l'impronta di firma.

  1. Nella pagina Firma dell'app in Google Play Console, scorri fino a Certificato della chiave di firma dell'app.
  2. Utilizza l'impronta digitale del certificato SHA-1.

Creare ID client OAuth 2.0

Per ogni chiave di firma applicabile nei passaggi precedenti, crea un ID client OAuth 2.0 nella le credenziali del progetto Google Cloud.

  • In Google Cloud, apri la pagina Credenziali.

    Credenziali

  • Fai clic su Crea credenziali, quindi seleziona ID client OAuth dal menu.

  • Compila i campi obbligatori come segue:

    • Tipo di applicazione: scegli Android.
    • Package name (Nome pacchetto): utilizza il nome del pacchetto dichiarato nel file AndroidManifest.xml.
    • Impronta certificato SHA-1: utilizza un'impronta ottenuta nei passaggi precedenti.
  • Premi Crea.

Includi le librerie richieste

  1. Includi com.google.android.gms:play-services-auth:16+ nelle dipendenze dell'app.
  2. Se utilizzi la minimizzazione del codice, aggiungilo al file build.gradle dell'app:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. Aggiungi quanto segue al file proguard-rules.pro dell'app:

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

La tua app è ora configurata per utilizzare l'autenticazione senza chiave.

Senza chiave

ARCore supporta l'autorizzazione delle chiamate API in iOS tramite un file JSON Web ). Il token deve essere firmato da un Account di servizio.

Al fine di generare token per iOS, devi avere un endpoint sul tuo server che soddisfi i seguenti requisiti:

  • Il tuo meccanismo di autorizzazione deve proteggere l'endpoint.

  • L'endpoint deve generare ogni volta un nuovo token, in modo che:

    • Ogni utente riceve un token univoco.
    • I token non scadono immediatamente.

Crea un account di servizio e una chiave di firma

Segui questi passaggi per creare un account di servizio Google e una chiave di firma:

  1. In Google Cloud, apri la pagina Credenziali.
    Credenziali
  2. Fai clic su Crea credenziali > Account di servizio.
  3. In Dettagli account di servizio, digita un nome per il nuovo account, quindi fai clic su Crea.
  4. Nella pagina Autorizzazioni account di servizio, vai al menu a discesa Seleziona un ruolo. Seleziona Account di servizio > Creatore token account di servizio, quindi fai clic su Continua.
  5. Nella pagina Concedi agli utenti l'accesso a questo account di servizio, fai clic su Fine.
  6. Nella pagina Credentials (Credenziali) vai alla sezione Account di servizio e fai clic sul nome dell'account che hai appena creato.
  7. Nella pagina Dettagli account di servizio, scorri verso il basso fino alla sezione Chiavi e Seleziona Aggiungi chiave > Crea nuova chiave.
  8. Seleziona JSON come tipo di chiave e fai clic su Crea.

    Viene scaricato un file JSON contenente la chiave privata sulla tua macchina. Negozio il file della chiave JSON scaricato in una posizione sicura.

Crea token sul tuo server

Per creare nuovi token (JWT) sul tuo server, utilizza il metodo JWT standard biblioteche e il file JSON che hai scaricato in modo sicuro dal nuovo account di servizio.

Crea token sul tuo computer di sviluppo

Per generare JWT sul tuo computer di sviluppo, usa quanto segue Comando oauth2l:

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

È necessario specificare una posizione della cache vuota utilizzando il flag --cache per assicura che venga generato ogni volta un token diverso. Assicurati di tagliare stringa risultante. Gli spazi aggiuntivi o i caratteri di nuova riga fanno sì che l'API rifiuta il token.

Firma il token

Per firmare il JWT, devi utilizzare l'algoritmo RS256 e le seguenti attestazioni:

  • iss: l'indirizzo email dell'account di servizio.
  • sub: l'indirizzo email dell'account di servizio.
  • iat: l'ora Unix in cui è stato generato il token, espressa in secondi.
  • exp - iat + 3600 (1 ora). L'epoca di Unix in cui scade il token, in pochi secondi.
  • aud: il pubblico. Deve essere impostato su https://arcore.googleapis.com/.

Le attestazioni non standard non sono richieste nel payload JWT, sebbene sia possibile trovare Affermazione uid utile per identificare l'utente corrispondente.

Se utilizzi un approccio diverso per generare i tuoi JWT, ad esempio utilizzando un in un ambiente gestito da Google, assicurati di firmare i tuoi JWT con le in questa sezione. Assicurati innanzitutto che il pubblico sia corretto.

Passare il token nella sessione ARCore

  1. Assicurati che la Strategia di autenticazione iOS sia impostata su AuthenticationToken. In Unity, vai a Modifica > Impostazioni progetto > Gestione dei plug-in XR > Estensioni ARCore. Nell'elenco a discesa Strategia di autenticazione iOS seleziona l'opzione Authentication Token (Token di autenticazione).
  2. Quando ottieni un token, passalo alla sessione ARCore utilizzando 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);
    

La tua app è ora configurata per utilizzare l'autenticazione senza chiave.

Quando passi un token alla sessione, tieni presente quanto segue:

  • Se hai utilizzato una chiave API per creare la sessione, ARCore ignorerà il e registrare un errore.

    Se non hai più bisogno della chiave API, eliminala in Google Developers Console e rimuoverlo dalla dell'app.

  • ARCore ignora i token che contengono spazi o caratteri speciali.

  • In genere i token scadono dopo un'ora. Se esiste la possibilità che il tuo potrebbe scadere durante l'uso, ottenere un nuovo token e passarlo all'API.

Chiave API

  1. In Google Cloud, apri la pagina Credenziali.
    Credenziali
  2. Fai clic su Crea credenziali, quindi seleziona Chiave API dal menu.
    Il La finestra di dialogo Chiave API creata mostra la stringa per la chiave appena creata.
  3. In Unity, vai a Modifica > Impostazioni progetto > Gestione dei plug-in XR > Estensioni ARCore. Per ogni piattaforma target (Android, iOS), nelle relative Nel menu a discesa Strategia di autenticazione, seleziona l'opzione Chiave API. Poi, inserisci la chiave API nei relativi campi.

  4. Consulta la documentazione sulle limitazioni relative alle chiavi API per proteggere la chiave API.

L'app è ora configurata per l'utilizzo delle chiavi API.

Passaggi successivi

Con l'autorizzazione configurata, dai un'occhiata alle seguenti funzionalità ARCore che utilizzano Questo: