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.
Wenn Sie noch kein Google Cloud-Projekt haben, erstellen Sie eines.
ARCore API aktivieren
Wenn Sie die ARCore API verwenden möchten, müssen Sie sie in Ihrem Projekt aktivieren.
Autorisierungsmethode einrichten
Eine iOS-App kann über zwei verschiedene Autorisierungsmethoden: Die schlüssellose Autorisierung, 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. 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 Tokenautorisierung verwenden, um mit der ARCore API zu kommunizieren.
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:
- Öffnen Sie in Google Cloud die Seite „Anmeldedaten“.
Anmeldedaten - Klicken Sie auf Anmeldedaten erstellen > Dienstkonto.
- Geben Sie unter Dienstkontodetails einen Namen für das neue Konto ein und klicken Sie dann auf Erstellen:
- 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.
- Klicken Sie auf der Seite Nutzern Zugriff auf dieses Dienstkonto erteilen auf „Fertig“.
- Klicken Sie auf der Seite Anmeldedaten suchen Sie den Abschnitt "Dienstkonten" und klicken Sie auf den Namen des Kontos. die Sie gerade erstellt haben.
- Scrollen Sie auf der Seite Dienstkontodetails nach unten zum Abschnitt „Schlüssel“ und wählen Sie Schlüssel hinzufügen > Neuen Schlüssel erstellen.
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 der 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. Achten Sie darauf, 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
Sitzung erstellen mit
GARSession#sessionWithError:
NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];
Wenn Sie ein Token erhalten, übergeben Sie es mithilfe von
setAuthToken:
Andernfalls verwendet die Sitzung das neueste gültige Autorisierungstoken. die Sie übergeben haben. Rufen Sie diese Methode jedes Mal auf, wenn Sie Ihr Token aktualisieren:[garSession 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, können Sie ihn auf der Google Developers-Website 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
- Öffnen Sie in Google Cloud die Seite „Anmeldedaten“.
Anmeldedaten - 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. Verwenden Sie beim Erstellen einer
GARSession
GARSession#sessionWithAPIKey:bundleIdentifier:error:
und fügen Sie Ihren API-Schlüssel ein:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
- 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: