Các tính năng ARCore như Không gian địa lý API và Cloud Anchors sử dụng API ARCore được lưu trữ trên Google Cloud. Khi sử dụng các tính năng này, ứng dụng của bạn sử dụng thông tin đăng nhập để truy cập vào dịch vụ API ARCore.
Phần bắt đầu nhanh này mô tả cách thiết lập ứng dụng của bạn để ứng dụng có thể giao tiếp với dịch vụ API ARCore được lưu trữ trên Google Cloud.
Tạo dự án mới trên Google Cloud hoặc dùng dự án hiện có
Nếu bạn đã có một dự án, hãy chọn dự án đó.
Nếu bạn chưa có dự án nào trên Google Cloud, hãy tạo một dự án.
Bật API ARCore
Để sử dụng API ARCore, bạn phải bật API này trong dự án của mình.
Thiết lập phương thức uỷ quyền
Một ứng dụng iOS có thể giao tiếp với API ARCore bằng cách sử dụng hai phương thức uỷ quyền: Uỷ quyền không cần khoá, phương thức đề xuất và uỷ quyền Khoá API:
- Tính năng uỷ quyền không dùng khoá sử dụng một mã thông báo đã ký để kiểm soát quyền truy cập vào API. Chiến dịch này yêu cầu máy chủ do bạn sở hữu phải ký mã thông báo và kiểm soát quyền truy cập vào API.
- Khoá API là một chuỗi xác định một dự án trên Google Cloud. Các khoá API là thường không được xem là an toàn vì máy khách thường có thể truy cập được. Hãy cân nhắc sử dụng tính năng Ủy quyền bằng mã thông báo để giao tiếp với API ARCore.
Không cần chìa khoá
ARCore hỗ trợ việc uỷ quyền các lệnh gọi API trong iOS bằng cách sử dụng (JSON Web mã thông báo). Mã thông báo phải do Google cung cấp Tài khoản dịch vụ.
Để tạo mã thông báo cho iOS, bạn phải có một điểm cuối trên máy chủ của mình đáp ứng các yêu cầu sau:
Cơ chế uỷ quyền của riêng bạn phải bảo vệ điểm cuối.
Mỗi lần, điểm cuối phải tạo một mã thông báo mới, sao cho:
- Mỗi người dùng sẽ nhận được một mã thông báo duy nhất.
- Mã thông báo không hết hạn ngay lập tức.
Tạo tài khoản dịch vụ và khoá ký
Hãy làm theo các bước sau để tạo một tài khoản dịch vụ và khoá ký của Google:
- Trong Google Cloud, hãy mở trang Thông tin xác thực.
Thông tin đăng nhập - Nhấp vào Tạo thông tin xác thực > Tài khoản dịch vụ.
- Trong phần Chi tiết tài khoản dịch vụ, hãy nhập tên cho tài khoản mới rồi nhấp vào Tạo.
- Trên trang Quyền đối với tài khoản dịch vụ, hãy chuyển đến trình đơn thả xuống Chọn vai trò. Chọn Tài khoản dịch vụ > Người tạo mã thông báo cho tài khoản dịch vụ, rồi nhấp vào Tiếp tục.
- Trên trang Cấp cho người dùng quyền truy cập vào tài khoản dịch vụ này, hãy nhấp vào Xong.
- Trên phần Thông tin đăng nhập , hãy tìm phần Tài khoản dịch vụ rồi nhấp vào tên tài khoản mà bạn vừa tạo.
- Trên trang Chi tiết tài khoản dịch vụ, hãy cuộn xuống phần Khoá rồi chọn Add Key > (Thêm khoá) Tạo khoá mới.
Chọn JSON làm loại khoá rồi nhấp vào Create (Tạo).
Thao tác này sẽ tải tệp JSON chứa khoá riêng tư xuống máy của bạn. Cửa hàng tệp khoá JSON đã tải xuống ở một vị trí an toàn.
Tạo mã thông báo trên máy chủ
Để tạo mã thông báo mới (JWT) trên máy chủ của bạn, hãy sử dụng JWT chuẩn thư viện và tệp JSON mà bạn đã tải xuống một cách an toàn từ tài khoản dịch vụ mới của mình.
Tạo mã thông báo trên máy phát triển
Để tạo JWT trên máy phát triển, hãy sử dụng
Lệnh oauth2l
:
oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"
Bạn cần chỉ định vị trí bộ nhớ đệm trống bằng cách sử dụng cờ --cache
để
hãy đảm bảo mỗi lần tạo một mã thông báo khác nhau. Hãy nhớ cắt bớt
chuỗi kết quả. Khoảng trắng thừa hoặc ký tự dòng mới sẽ khiến API
từ chối mã thông báo.
Ký mã thông báo
Bạn phải sử dụng thuật toán RS256
và các thông báo xác nhận quyền sở hữu sau đây để ký JWT:
iss
– Địa chỉ email của tài khoản dịch vụ.sub
– Địa chỉ email của tài khoản dịch vụ.iat
– Thời gian bắt đầu của hệ thống Unix khi mã thông báo được tạo, tính bằng giây.exp
—iat
+3600
(1 giờ). Thời gian bắt đầu của hệ thống Unix khi mã thông báo hết hạn, tính bằng giây.aud
— Đối tượng. Bạn phải đặt giá trị này thànhhttps://arcore.googleapis.com/
.
Không bắt buộc phải có các thông báo xác nhận quyền sở hữu không theo chuẩn trong tải trọng JWT, mặc dù bạn có thể thấy thông báo xác nhận quyền sở hữu
Tuyên bố uid
hữu ích trong việc xác định người dùng tương ứng.
Nếu bạn sử dụng một phương pháp khác để tạo JWT, chẳng hạn như sử dụng API trong môi trường do Google quản lý, hãy nhớ ký JWT của bạn bằng các thông báo xác nhận quyền sở hữu trong phần này. Trên hết, hãy đảm bảo rằng đối tượng người xem là chính xác.
Truyền mã thông báo vào phiên ARCore
Tạo một phiên bằng
GARSession#sessionWithError:
.NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];
Khi bạn nhận được mã thông báo, hãy truyền mã đó vào phiên bằng cách sử dụng
setAuthToken:
. Nếu không, phiên truy cập sẽ sử dụng mã thông báo uỷ quyền hợp lệ gần đây nhất mà bạn đã chuyển vào. Gọi phương thức này mỗi khi bạn làm mới mã thông báo:[garSession setAuthToken: authToken]
Ứng dụng của bạn hiện đã được định cấu hình để sử dụng phương thức xác thực không dùng khoá.
Hãy lưu ý những điều sau đây khi bạn truyền một mã thông báo vào phiên:
Nếu bạn đã sử dụng một khoá API để tạo phiên này, ARCore sẽ bỏ qua mã thông báo và ghi lại một lỗi.
Nếu bạn không cần khoá API nữa, hãy xoá khoá đó trong ứng dụng Google Developers Console và xoá ứng dụng đó khỏi .
ARCore bỏ qua các mã thông báo chứa dấu cách hoặc ký tự đặc biệt.
Mã thông báo thường hết hạn sau một giờ. Nếu có khả năng mã thông báo có thể hết hạn trong khi sử dụng, hãy lấy mã mới và chuyển mã đó đến API.
Khóa API
- Trong Google Cloud, hãy mở trang Thông tin xác thực.
Thông tin đăng nhập - Nhấp vào Tạo thông tin xác thực, rồi chọn Khoá API trên trình đơn.
Các Hộp thoại do khoá API tạo sẽ hiển thị chuỗi cho khoá mới tạo. Khi tạo
GARSession
, hãy sử dụngGARSession#sessionWithAPIKey:bundleIdentifier:error:
và chèn khoá API:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
- Xem tài liệu về các hạn chế đối với khoá API để bảo mật khoá API của bạn.
Ứng dụng của bạn hiện đã được định cấu hình để sử dụng khoá API.
Các bước tiếp theo
Khi đã định cấu hình uỷ quyền, hãy xem các tính năng ARCore sau đây sử dụng nó: