ARCore API in Google Cloud verwenden

Plattform auswählen:

Für ARCore-Funktionen wie die Geospatial API und Cloud Anchors wird die in Google Cloud gehostete ARCore API verwendet. Bei der Nutzung dieser Funktionen greift Ihre Anwendung mithilfe von Anmeldedaten auf den ARCore API-Dienst zu.

In dieser Kurzanleitung wird beschrieben, wie Sie Ihre Anwendung so einrichten, dass sie mit dem in Google Cloud gehosteten ARCore API-Dienst kommunizieren kann.

Neues Google Cloud-Projekt erstellen oder ein vorhandenes Projekt verwenden

Wenn Sie ein vorhandenes 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

Für die Kommunikation einer iOS-App mit der ARCore API gibt es zwei verschiedene Autorisierungsmethoden: die schlüssellose Autorisierung (die empfohlene Methode) und die API-Schlüsselautorisierung:

  • Bei der schlüssellosen Autorisierung wird ein signiertes Token verwendet, um den Zugriff auf die API zu steuern. Für diese Methode ist ein Server erforderlich, der Ihnen gehört, um Tokens zu signieren und den Zugriff auf die API zu steuern.
  • Ein API-Schlüssel ist ein String, der ein Google Cloud-Projekt identifiziert. API-Schlüssel gelten im Allgemeinen nicht als sicher, da sie normalerweise für Clients zugänglich sind. Sie können die Tokenautorisierung verwenden, um mit der ARCore API zu kommunizieren.

Schlüsselloser

ARCore unterstützt die Autorisierung von API-Aufrufen in iOS mit einem JSON Web Token. Das Token muss von einem Google-Dienstkonto signiert sein.

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

  • Ihr eigener Autorisierungsmechanismus muss den Endpunkt schützen.

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

    • Jeder Nutzer erhält ein eindeutiges Token.
    • Tokens 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. Öffnen Sie auf der Seite „Dienstkontoberechtigungen“ das Drop-down-Menü Rolle auswählen. Wählen Sie Dienstkonten > Ersteller von Dienstkonto-Tokens aus und klicken Sie auf „Weiter“.
  5. Klicken Sie auf der Seite Nutzern Zugriff auf dieses Dienstkonto erteilen auf „Fertig“.
  6. Suchen Sie auf der Seite Anmeldedaten den Abschnitt „Dienstkonten“ und klicken Sie auf den Namen des gerade erstellten Kontos.
  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 aus.
  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. Speichern Sie die heruntergeladene JSON-Schlüsseldatei an einem sicheren Ort.

Tokens auf Ihrem Server erstellen

Verwenden Sie zum Erstellen neuer Tokens (JWTs) auf Ihrem Server die standardmäßigen JWT-Bibliotheken und die JSON-Datei, die Sie sicher von Ihrem neuen Dienstkonto heruntergeladen haben.

Tokens auf dem Entwicklungscomputer erstellen

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

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

Mit dem Flag --cache muss ein leerer Cache-Speicherort angegeben werden, damit jedes Mal ein anderes Token generiert wird. Vergessen Sie nicht, den resultierenden String zu kürzen. Zusätzliche Leerzeichen oder Zeilenumbrüche führen dazu, dass die API das Token ablehnt.

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-Epochen-Zeit in Sekunden, zu der das Token generiert wurde.
  • exp: iat + 3600 (1 Stunde). Die Unix-Epochen-Zeit in Sekunden, zu der das Token abläuft.
  • aud: Die Zielgruppe. Er muss auf https://arcore.googleapis.com/ festgelegt werden.

Nicht standardmäßige Anforderungen sind in der JWT-Nutzlast nicht erforderlich. Die uid-Anforderung kann jedoch nützlich sein, um den entsprechenden Nutzer zu identifizieren.

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

Token in der ARCore-Sitzung übergeben

Ihre Anwendung ist jetzt für die Verwendung der schlüssellosen Authentifizierung konfiguriert.

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

  • Wenn Sie die Sitzung mit einem API-Schlüssel erstellt haben, ignoriert ARCore das Token und protokolliert einen Fehler.

    Wenn Sie den API-Schlüssel nicht mehr benötigen, löschen Sie ihn in der Google Developers Console und entfernen Sie ihn aus Ihrer App.

  • ARCore ignoriert Tokens, die Leerzeichen oder Sonderzeichen enthalten.

  • Tokens laufen in der Regel nach einer Stunde ab. Wenn die Möglichkeit besteht, dass Ihr Token während der Verwendung abläuft, fordern Sie ein neues Token an 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.
    Im Dialogfeld „API-Schlüssel erstellt“ wird der String für den neu erstellten Schlüssel angezeigt.
  3. Informationen zur Sicherung des API-Schlüssels finden Sie in der Dokumentation zu Einschränkungen für API-Schlüssel.

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

Nächste Schritte

Wenn die Autorisierung konfiguriert ist, kannst du die folgenden ARCore-Funktionen ausprobieren: