在 Google Cloud 中使用 ARCore API

選取平台:

ARCore 功能,例如地理空間 APICloud Anchors 使用 託管於 Google Cloud 的 ARCore API。使用這些功能時,您的應用程式 使用憑證存取 ARCore API 服務。

本快速入門導覽課程說明如何設定應用程式,以便 都能與託管於 Google Cloud 的 ARCore API 服務進行通訊。

建立新的 Google Cloud 專案或使用現有專案

如果您有現有專案,請選取該專案。

前往專案選取器

如果您目前沒有 Google Cloud 專案,請先建立專案。

建立新專案

啟用 ARCore API

如要使用 ARCore API,您必須在專案中啟用 ARCore API。

啟用 ARCore API

設定授權方法

iOS 應用程式可以使用兩種不同的方法與 ARCore API 通訊 授權方法:無金鑰授權 和 API 金鑰授權:

  • 無金鑰授權使用憑證來控管 API 存取權。這個 方法會要求您擁有的伺服器,以便簽署符記並控制 並嚴謹測試及提升 API 的公平性後 我們才能放心地推出 API
  • API 金鑰是用來識別 Google Cloud 專案的字串。API 金鑰是 通常不會視為安全,因為用戶端通常可以使用這類軟體。 建議您使用權杖授權與 ARCore API 通訊。

無鑰匙

ARCore 支援在 iOS 中使用 (JSON Web) 授權的 API 呼叫 權杖)。權杖必須由 Google 。

你必須在伺服器上設定端點,才能產生 iOS 權杖 須符合下列條件:

  • 您自己的授權機制必須保護端點。

  • 端點每次都必須產生新的符記,以便:

    • 每位使用者都會取得專屬權杖。
    • 權杖不會立即失效。

建立服務帳戶與簽署金鑰

請按照下列步驟建立 Google 服務帳戶和簽署金鑰:

  1. 在 Google Cloud 中開啟「憑證」頁面。
    憑證
  2. 按一下「建立憑證」>服務帳戶
  3. 在「服務帳戶詳細資料」下方輸入新帳戶的名稱,然後按一下 建立
  4. 在「服務帳戶權限」頁面,前往「請選取角色」下拉式選單。 選取服務帳戶 >服務帳戶權杖建立者,然後按一下 繼續。
  5. 在「將這個服務帳戶的存取權授予使用者」頁面上,按一下「完成」。
  6. 在「Credentials」(憑證) 中 在頁面中找出「服務帳戶」專區,然後按一下帳戶名稱 每個 Cloud Storage 值區
  7. 在「Service account details」(服務帳戶詳細資料) 頁面中,向下捲動至「Keys」(金鑰) 部分,然後 選取「新增鍵」>建立新的金鑰。
  8. 選取「JSON」JSON做為金鑰類型,然後按一下「建立」JSON

    系統隨即會將含有私密金鑰的 JSON 檔案下載至您的電腦。商店 下載的 JSON 金鑰檔案放在安全位置

在伺服器上建立權杖

如要在伺服器上建立新的權杖 (JWT),請使用標準 JWT 程式庫 以及透過新服務帳戶安全下載的 JSON 檔案

在開發機器上建立權杖

如要在開發機器上產生 JWT,請使用下列程式碼 oauth2l 指令:

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

您必須使用 --cache 旗標指定空白的快取位置,才能 請確保每次產生不同的權杖。請務必剪輯 。多餘的空格或換行字元會導致 API 無法 拒絕權杖

簽署權杖

您必須使用 RS256 演算法和下列憑證附加資訊來簽署 JWT:

  • iss:服務帳戶電子郵件地址。
  • sub:服務帳戶電子郵件地址。
  • iat:權杖產生時的 Unix 紀元時間 (以秒為單位)。
  • expiat + 3600 (1 小時)。權杖到期時的 Unix 紀元時間 就能快速上手
  • aud - 目標對象。必須設為 https://arcore.googleapis.com/

非標準憑證附加資訊並不需要在 JWT 酬載中 uid 聲明可用來識別對應的使用者。

如果您使用其他方法產生 JWT,例如使用 API (位於 Google 代管環境中),請務必在使用憑證附加資訊時簽署您的 JWT 本節最重要的是,請確認目標對象正確無誤。

在 ARCore 工作階段中傳遞權杖

  1. 使用以下方式建構工作階段: GARSession#sessionWithError:

    NSError *error = nil;
    GARSession *garSession = [GARSession sessionWithError:&error];
    
  2. 取得權杖後,請使用 setAuthToken:。 否則,工作階段會使用最新的有效授權權杖 與內部 IP 位址之間的關係每次更新權杖時,請呼叫這個方法:

    [garSession setAuthToken: authToken]
    

您的應用程式現已設為使用無金鑰驗證。

將權杖傳遞至工作階段時,請注意下列事項:

  • 如果您已使用 API 金鑰建立工作階段,ARCore 將忽略 並記錄錯誤

    如果您不再需要 API 金鑰,請前往 Google Developers 網站刪除 控制台,並將該指標從 應用程式。

  • ARCore 會忽略含有空格或特殊字元的符記。

  • 憑證通常會在一小時後失效。如果 權杖可能會在使用期間過期,請取得新權杖並傳遞至 API。

API 金鑰

  1. 在 Google Cloud 中開啟「憑證」頁面。
    憑證
  2. 按一下「建立憑證」,然後從選單中選取「API 金鑰」
    建立的 API 金鑰對話方塊會顯示新建金鑰的字串。
  3. 建立 GARSession 時,請使用 GARSession#sessionWithAPIKey:bundleIdentifier:error:。 然後插入 API 金鑰:

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    
  4. 參閱 API 金鑰限制說明文件 確保 API 金鑰安全

您的應用程式現已設為使用 API 金鑰。

後續步驟

設定授權後,請查看下列使用 它: