ARCore 功能 (例如 Geospatial API 和 Cloud Anchors) 會使用 Google Cloud 上託管的 ARCore API。使用這些功能時,應用程式會使用憑證存取 ARCore API 服務。
本快速入門導覽課程說明如何設定應用程式,以便與 Google Cloud 上代管的 ARCore API 服務通訊。
建立新的 Google Cloud 專案,或使用現有專案
如有現有專案,請選取該專案。
如果您沒有現有的 Google Cloud 雲端專案,請建立一個。
啟用 ARCore API
如要使用 ARCore API,必須在專案中啟用這項 API。
設定授權方法
iOS 應用程式可使用兩種不同的授權方法與 ARCore API 通訊:無金鑰授權 (建議使用的方法) 和 API 金鑰授權:
- 無金鑰授權會使用已簽署的權杖來控管 API 存取權。這個方法需要您擁有的伺服器簽署權杖,並控管 API 存取權。
- API 金鑰是識別 Google Cloud 專案的字串,API 金鑰通常可供用戶端存取,因此一般不視為安全。建議使用權杖授權與 ARCore API 通訊。
免鑰
ARCore 支援使用 (JSON Web Token) 授權 iOS 中的 API 呼叫。權杖必須由 Google 服務帳戶簽署。
如要為 iOS 產生權杖,伺服器必須具備符合下列條件的端點:
您必須使用自己的授權機制保護端點。
端點每次都必須產生新權杖,因此:
- 每位使用者都有一個專屬權杖。
- 權杖不會立即失效。
建立服務帳戶和簽署金鑰
請按照下列步驟建立 Google 服務帳戶和簽署金鑰:
- 在 Google Cloud 中開啟「憑證」頁面。
憑證 - 依序按一下「建立憑證」>「服務帳戶」。
- 在「Service account details」(服務帳戶詳細資料) 下方,輸入新帳戶的名稱,然後按一下「Create」(建立)。
- 在「服務帳戶權限」頁面,前往「選取角色」下拉式選單。 選取「服務帳戶」>「服務帳戶權杖建立者」,然後按一下「繼續」。
- 在「將這個服務帳戶的存取權授予使用者」頁面中,按一下「完成」。
- 在「憑證」頁面中找到「服務帳戶」部分,然後點選您剛才建立的帳戶名稱。
- 在「服務帳戶詳細資料」頁面中,向下捲動至「金鑰」部分,然後依序選取「新增金鑰」>「建立新的金鑰」。
選取「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 Epoch 時間 (以秒為單位)。aud- 目標對象。必須設為https://arcore.googleapis.com/。
JWT 酬載中不需要非標準聲明,但您可能會發現 uid 聲明有助於識別對應的使用者。
如果您使用其他方法產生 JWT,例如在 Google 管理的環境中使用 Google API,請務必使用本節中的憑證附加資訊簽署 JWT。最重要的是,請確認目標對象正確無誤。
在 ARCore 工作階段中傳遞權杖
應用程式現在已設定為使用免密碼驗證。
將權杖傳遞至工作階段時,請注意下列事項:
如果您使用 API 金鑰建立工作階段,ARCore 會忽略權杖並記錄錯誤。
如果不再需要 API 金鑰,請在 Google Developers Console中刪除,並從應用程式中移除。
ARCore 會忽略含有空格或特殊字元的權杖。
權杖通常會在 1 小時後失效。如果權杖在使用期間可能過期,請取得新權杖並傳遞至 API。
API 金鑰
- 在 Google Cloud 中開啟「憑證」頁面。
憑證 - 按一下「建立憑證」,然後從選單中選取「API 金鑰」。
「建立的 API 金鑰」對話方塊會顯示新建立金鑰的字串。 - 請參閱 API 金鑰限制說明文件,確保 API 金鑰安全無虞。
您的應用程式現已設定為使用 API 金鑰。
後續步驟
設定授權後,請查看下列使用授權的 ARCore 功能: