ARCore API in Google Cloud verwenden

Plattform auswählen: <ph type="x-smartling-placeholder"></ph>

ARCore-Funktionen wie das Geospatial API und Cloud-Anchors verwenden die Methode ARCore API, die in Google Cloud gehostet wird Wenn Sie diese Funktionen verwenden, verwendet Anmeldedaten, um auf den ARCore API-Dienst zuzugreifen.

In diesem Schnellstart wird beschrieben, wie Sie Ihre Anwendung so einrichten können, dass sie mit dem in Google Cloud gehosteten ARCore API-Dienst kommunizieren können.

Neues Google Cloud-Projekt erstellen oder vorhandenes Projekt verwenden

Wenn Sie bereits ein Projekt haben, wählen Sie es aus.

Zur Projektauswahl

Wenn Sie noch kein Google Cloud-Projekt haben, erstellen Sie eines.

Neues Projekt erstellen

ARCore API aktivieren

Wenn Sie die ARCore API verwenden möchten, müssen Sie sie in Ihrem Projekt aktivieren.

ARCore API aktivieren

Autorisierungsmethode einrichten

Eine Unity-App kann über zwei verschiedene Autorisierungsmethoden: Die schlüssellose Autorisierung, empfohlene Methode und die API-Schlüsselautorisierung:

  • Unter Android wird für die schlüssellose Autorisierung eine Kombination aus dem Paketnamen der Anwendung verwendet. und den Fingerabdruck des Signaturschlüssels zur Autorisierung Ihrer Anwendung.

    Auf iOS-Geräten wird für die schlüssellose Autorisierung ein signiertes Token verwendet, um den Zugriff auf die API zu steuern. Dieses erfordert einen eigenen Server, um Tokens zu signieren und den Zugriff auf die API verwenden.

  • Ein API-Schlüssel ist ein String, der ein Google Cloud-Projekt identifiziert. API-Schlüssel sind in der Regel nicht als sicher gelten, da sie in der Regel für Clients zugänglich sind. Sie können die schlüssellose Autorisierung verwenden, um mit der ARCore API zu kommunizieren.

Schlüssellos

Erstellen Sie einen OAuth 2.0-Client, um Ihre Anwendung mit der schlüssellosen Authentifizierung zu autorisieren IDs.

Signaturschlüssel-Fingerabdrücke ermitteln

Bei einer OAuth 2.0-Client-ID wird der Signaturschlüssel Ihrer App anhand des Signaturschlüssel-Fingerabdrucks Ihres App-Signaturschlüssels identifiziert:

Signatur-Fingerabdruck zur Fehlerbehebung erhalten

Wenn Sie Ihr Projekt ausführen oder Fehler beheben, signieren die Android SDK-Tools automatisch App mit einem generierten Debug-Zertifikat abrufen.

Verwenden Sie den folgenden Befehl, um den Fingerabdruck des Debug-Zertifikats abzurufen.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Mac/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
<ph type="x-smartling-placeholder">
</ph>
Fenster
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

Das Dienstprogramm keytool fordert Sie auf, ein Passwort für den Schlüsselspeicher einzugeben. Die Das Standardpasswort für den Fehlerbehebungs-Keystore ist android. Das Dienstprogramm keytool gibt den Fingerabdruck an das Terminal aus. Beispiel:

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

Signierenden Fingerabdruck aus einem Schlüsselspeicher erhalten

Wenn du eine Schlüsselspeicherdatei hast, verwende das Dienstprogramm keytool, um den Fingerabdruck zu ermitteln.

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

Das Dienstprogramm keytool gibt den Fingerabdruck dann auf dem Terminal aus. Beispiel:

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

Signaturschlüssel Ihrer App bei Play App Signing abrufen

Wenn Sie die Play App-Signatur verwenden, Google verwaltet den Signaturschlüssel deiner App und verwendet ihn zum Signieren deiner APKs. Dieser Schlüssel sollte für den Signatur-Fingerabdruck verwendet werden.

  1. Scrollen Sie in der Google Play Console auf der Seite „App-Signatur“ zu Zertifikat für den App-Signaturschlüssel.
  2. Verwenden Sie den SHA-1-Fingerabdruck des Zertifikats.

OAuth-2.0-Client-IDs erstellen

Erstellen Sie für jeden anwendbaren Signaturschlüssel aus den vorherigen Schritten eine OAuth 2.0-Client-ID in Ihrem Anmeldedaten des Google Cloud-Projekts

  • Öffnen Sie in Google Cloud die Seite „Anmeldedaten“.

    Anmeldedaten

  • Klicken Sie auf Anmeldedaten erstellen und wählen Sie dann im Menü OAuth-Client-ID aus.

  • Füllen Sie die Pflichtfelder so aus:

    • Anwendungstyp: Wählen Sie Android aus.
    • Paketname: Verwenden Sie den Paketnamen, wie er in der Datei AndroidManifest.xml angegeben ist.
    • SHA-1-Zertifikatfingerabdruck: Verwenden Sie einen Fingerabdruck, den Sie in den vorherigen Schritten abgerufen haben.
  • Klicken Sie auf Erstellen.

Erforderliche Bibliotheken einschließen

  1. Fügen Sie com.google.android.gms:play-services-auth:16+ in die Abhängigkeiten Ihrer Anwendung ein.
  2. Wenn Sie die Codeminifizierung verwenden: fügen Sie ihn der Datei build.gradle Ihrer App hinzu:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. Fügen Sie der Datei proguard-rules.pro Ihrer Anwendung Folgendes hinzu:

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

Deine App ist jetzt für die Verwendung der schlüssellosen Authentifizierung konfiguriert.

Schlüssellos

ARCore unterstützt die Autorisierung von API-Aufrufen in iOS mithilfe einer (JSON Web- Token) Das Token muss von einem Google-Mitarbeiter Dienstkonto.

Zum Generieren von Tokens für iOS benötigen Sie einen Endpunkt auf Ihrem Server die die folgenden Anforderungen erfüllt:

  • Der Endpunkt muss durch Ihren eigenen Autorisierungsmechanismus geschützt werden.

  • Der Endpunkt muss jedes Mal ein neues Token generieren, z. B.:

    • Jeder Nutzer erhält ein eindeutiges Token.
    • Token laufen nicht sofort ab.

Dienstkonto und Signaturschlüssel erstellen

So erstellen Sie ein Google-Dienstkonto und einen Signaturschlüssel:

  1. Öffnen Sie in Google Cloud die Seite „Anmeldedaten“.
    Anmeldedaten
  2. Klicken Sie auf Anmeldedaten erstellen > Dienstkonto.
  3. Geben Sie unter Dienstkontodetails einen Namen für das neue Konto ein und klicken Sie dann auf Erstellen:
  4. Gehen Sie auf der Seite „Dienstkontoberechtigungen“ zum Drop-down-Menü Rolle auswählen. Wählen Sie Dienstkonten > Service Account Token Creator (Ersteller von Dienstkonto-Tokens) und klicken Sie dann auf Weiter.
  5. Klicken Sie auf der Seite Nutzern Zugriff auf dieses Dienstkonto erteilen auf „Fertig“.
  6. Klicken Sie auf der Seite Anmeldedaten suchen Sie den Abschnitt "Dienstkonten" und klicken Sie auf den Namen des Kontos. die Sie gerade erstellt haben.
  7. Scrollen Sie auf der Seite Dienstkontodetails nach unten zum Abschnitt „Schlüssel“ und wählen Sie Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  8. Wählen Sie als Schlüsseltyp JSON aus und klicken Sie auf Erstellen.

    Dadurch wird eine JSON-Datei mit dem privaten Schlüssel auf Ihren Computer heruntergeladen. Geschäft die heruntergeladene JSON-Schlüsseldatei an einem sicheren Ort.

Tokens auf dem Server erstellen

Verwende das Standard-JWTs, um neue Tokens (JWTs) auf deinem Server zu erstellen. Bibliotheken und die JSON-Datei, die Sie sicher von Ihrem neuen Dienstkonto heruntergeladen haben.

Tokens auf dem Entwicklungscomputer erstellen

Verwenden Sie folgenden Code, um JWTs auf Ihrem Entwicklungscomputer zu generieren: oauth2l-Befehl:

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

Die Angabe eines leeren Cache-Speicherorts mit dem Flag --cache ist erforderlich, um damit jedes Mal ein anderes Token erzeugt wird. Schneiden Sie die resultierenden String hinzu. Zusätzliche Leerzeichen oder Zeilenumbruch führen dazu, dass die API Token ablehnen

Token signieren

Du musst den RS256-Algorithmus und die folgenden Anforderungen verwenden, um das JWT zu signieren:

  • iss: Die E-Mail-Adresse des Dienstkontos.
  • sub: Die E-Mail-Adresse des Dienstkontos.
  • iat: Die Unix-Epochenzeit in Sekunden, in der das Token generiert wurde.
  • exp: iat + 3600 (1 Stunde). Die Unix-Epochen-Zeit, zu der das Token abläuft, in Sekundenschnelle.
  • aud: Die Zielgruppe. Dafür muss Folgendes festgelegt werden: https://arcore.googleapis.com/

Nicht standardmäßige Anforderungen sind in der JWT-Nutzlast nicht erforderlich. Unter Umständen findest du das Die uid-Anforderung ist nützlich, um den entsprechenden Nutzer zu identifizieren.

Wenn Sie zum Generieren Ihrer JWTs einen anderen Ansatz verwenden, z. B. API in einer von Google verwalteten Umgebung verwenden, müssen Sie Ihre JWTs mit den Anforderungen signieren, in diesem Abschnitt. Stellen Sie vor allem sicher, dass die Zielgruppe korrekt ist.

Token in der ARCore-Sitzung übergeben

  1. Die iOS-Authentifizierungsstrategie sollte auf AuthenticationToken: Gehen Sie in Unity zu Bearbeiten > Projekteinstellungen > XR-Plug-in-Verwaltung > ARCore-Erweiterungen Im Drop-down-Menü iOS-Authentifizierungsstrategie die Option Authentication Token (Authentifizierungstoken) aus.
  2. Wenn du ein Token erhältst, übergib es mithilfe von 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);
    

Deine App ist jetzt für die Verwendung der schlüssellosen Authentifizierung konfiguriert.

Beachten Sie Folgendes, wenn Sie ein Token an die Sitzung übergeben:

  • Wenn du zum Erstellen der Sitzung einen API-Schlüssel verwendet hast, ignoriert ARCore den Parameter und einen Fehler protokollieren.

    Wenn Sie den API-Schlüssel nicht mehr benötigen, löschen Sie ihn auf der Seite Google Developers Console und entfernen Sie sie von der

  • Tokens, die Leerzeichen oder Sonderzeichen enthalten, werden von ARCore ignoriert.

  • Tokens laufen in der Regel nach einer Stunde ab. Wenn die Möglichkeit besteht, Token kann während der Verwendung ablaufen. Rufen Sie ein neues Token ab und übergeben Sie es an die API.

API-Schlüssel

  1. Öffnen Sie in Google Cloud die Seite „Anmeldedaten“.
    Anmeldedaten
  2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie im Menü API-Schlüssel aus.
    Die Das Dialogfeld „API-Schlüssel erstellt“ zeigt den String für den neu erstellten Schlüssel an.
  3. Gehen Sie in Unity zu Bearbeiten > Projekteinstellungen > XR-Plug-in-Verwaltung > ARCore-Erweiterungen Für jede Zielplattform (Android, iOS) in ihrer Authentication Strategy (Authentifizierungsstrategie) die Option API Key (API-Schlüssel) aus. Gehen Sie dann so vor: geben Sie Ihren API-Schlüssel in die entsprechenden Felder ein.

  4. Dokumentation zu Einschränkungen für API-Schlüssel um Ihren API-Schlüssel zu sichern.

Ihre App ist jetzt für die Verwendung von API-Schlüsseln konfiguriert.

Nächste Schritte

Nachdem du die Autorisierung konfiguriert hast, kannst du dir die folgenden ARCore-Funktionen ansehen, die es: