ARCore 功能,例如地理空間 API 和 Cloud Anchors 使用 託管於 Google Cloud 的 ARCore API。使用這些功能時,您的應用程式 使用憑證存取 ARCore API 服務。
本快速入門導覽課程說明如何設定應用程式,以便 都能與託管於 Google Cloud 的 ARCore API 服務進行通訊。
建立新的 Google Cloud 專案或使用現有專案
如果您有現有專案,請選取該專案。
如果您目前沒有 Google Cloud 專案,請先建立專案。
啟用 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 服務帳戶和簽署金鑰:
- 在 Google Cloud 中開啟「憑證」頁面。
憑證 - 按一下「建立憑證」>服務帳戶。
- 在「服務帳戶詳細資料」下方輸入新帳戶的名稱,然後按一下 建立。
- 在「服務帳戶權限」頁面,前往「請選取角色」下拉式選單。 選取服務帳戶 >服務帳戶權杖建立者,然後按一下 繼續。
- 在「將這個服務帳戶的存取權授予使用者」頁面上,按一下「完成」。
- 在「Credentials」(憑證) 中 在頁面中找出「服務帳戶」專區,然後按一下帳戶名稱 每個 Cloud Storage 值區
- 在「Service account details」(服務帳戶詳細資料) 頁面中,向下捲動至「Keys」(金鑰) 部分,然後 選取「新增鍵」>建立新的金鑰。
選取「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 紀元時間 (以秒為單位)。exp
—iat
+3600
(1 小時)。權杖到期時的 Unix 紀元時間 就能快速上手aud
- 目標對象。必須設為https://arcore.googleapis.com/
。
非標準憑證附加資訊並不需要在 JWT 酬載中
uid
聲明可用來識別對應的使用者。
如果您使用其他方法產生 JWT,例如使用 API (位於 Google 代管環境中),請務必在使用憑證附加資訊時簽署您的 JWT 本節最重要的是,請確認目標對象正確無誤。
在 ARCore 工作階段中傳遞權杖
使用以下方式建構工作階段:
GARSession#sessionWithError:
。NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];
取得權杖後,請使用
setAuthToken:
。 否則,工作階段會使用最新的有效授權權杖 與內部 IP 位址之間的關係每次更新權杖時,請呼叫這個方法:[garSession setAuthToken: authToken]
您的應用程式現已設為使用無金鑰驗證。
將權杖傳遞至工作階段時,請注意下列事項:
如果您已使用 API 金鑰建立工作階段,ARCore 將忽略 並記錄錯誤
如果您不再需要 API 金鑰,請前往 Google Developers 網站刪除 控制台,並將該指標從 應用程式。
ARCore 會忽略含有空格或特殊字元的符記。
憑證通常會在一小時後失效。如果 權杖可能會在使用期間過期,請取得新權杖並傳遞至 API。
API 金鑰
- 在 Google Cloud 中開啟「憑證」頁面。
憑證 - 按一下「建立憑證」,然後從選單中選取「API 金鑰」。
建立的 API 金鑰對話方塊會顯示新建金鑰的字串。 建立
GARSession
時,請使用GARSession#sessionWithAPIKey:bundleIdentifier:error:
。 然後插入 API 金鑰:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
- 參閱 API 金鑰限制說明文件 確保 API 金鑰安全
您的應用程式現已設為使用 API 金鑰。
後續步驟
設定授權後,請查看下列使用 它: