ARCore API in Google Cloud verwenden

Plattform auswählen:

ARCore-Funktionen wie die Geospatial API und Cloud Anchors verwenden die in Google Cloud gehostete ARCore API. Wenn Sie diese Funktionen verwenden, greift Ihre Anwendung mit 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.

Ein 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

Eine iOS-Anwendung kann über zwei verschiedene Autorisierungsmethoden mit der ARCore API kommunizieren: die schlüssellose Autorisierung (empfohlen) 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 generell nicht als sicher, da sie normalerweise für Clients zugänglich sind. Verwenden Sie die Token-Autorisierung für die Kommunikation mit der ARCore API.

Schlüssellose

ARCore unterstützt die Autorisierung von API-Aufrufen in iOS mithilfe eines JSON-Webtokens. Das Token muss von einem Google-Dienstkonto signiert werden.

Damit Sie Tokens für iOS generieren können, benötigen Sie einen Endpunkt auf Ihrem Server, der die folgenden Anforderungen erfüllt:

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

  • Der Endpunkt muss jedes Mal ein neues Token generieren, sodass:

    • 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. Rufen Sie auf der Seite „Dienstkontoberechtigungen“ das Drop-down-Menü Rolle auswählen auf. 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 nach dem Abschnitt „Dienstkonten“ und klicken Sie auf den Namen des Kontos, das Sie gerade erstellt haben.
  7. Scrollen Sie auf der Seite Dienstkontodetails 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 Standard-JWT-Bibliotheken und die JSON-Datei, die Sie sicher von Ihrem neuen Dienstkonto heruntergeladen haben.

Tokens auf Ihrer Entwicklungsmaschine 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/"

Wenn Sie mit dem Flag --cache einen leeren Cache-Speicherort angeben, wird jedes Mal ein anderes Token generiert. Achten Sie darauf, den resultierenden String zu kürzen. Zusätzliche Leerzeichen oder Zeilenumbrüche führen dazu, dass die API das Token ablehnt.

Token signieren

Sie müssen den RS256-Algorithmus und die folgenden Ansprüche verwenden, um das JWT zu signieren:

  • iss: Die E-Mail-Adresse des Dienstkontos.
  • sub: Die E-Mail-Adresse des Dienstkontos.
  • iat: Die Unix-Epochenzeit, zu der das Token generiert wurde, in Sekunden.
  • exp – iat + 3600 (1 Stunde). Die Unix-Epochenzeit, zu der das Token abläuft, in Sekunden.
  • aud – Die Zielgruppe. Es muss auf https://arcore.googleapis.com/ gesetzt sein.

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

Wenn Sie Ihre JWTs auf andere Weise generieren, z. B. mit einer Google API in einer von Google verwalteten Umgebung, müssen Sie Ihre JWTs mit den Anforderungen in diesem Abschnitt signieren. Achten Sie vor allem darauf, dass die Zielgruppe stimmt.

Token in der ARCore-Sitzung übergeben

Ihre App ist jetzt für die schlüssellose Authentifizierung konfiguriert.

Beachten Sie beim Übergeben eines Tokens in die Sitzung Folgendes:

  • Wenn Sie einen API-Schlüssel zum Erstellen der Sitzung verwendet 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 Ihr Token während der Verwendung ablaufen kann, 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.
     Das Dialogfeld „API-Schlüssel erstellt“ enthält den String für den neu erstellten Schlüssel.
  3. Dokumentation zu API-Schlüsseleinschränkungen

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

Nächste Schritte

Nachdem Sie die Autorisierung konfiguriert haben, können Sie sich die folgenden ARCore-Funktionen ansehen, die sie verwenden: