Sử dụng API ARCore trên Google Cloud

Chọn nền tảng:

Các tính năng của ARCore như Geospatial APICloud Anchors sử dụng ARCore API đượ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ụ ARCore API.

Hướng dẫn bắt đầu nhanh này mô tả cách thiết lập ứng dụng để ứng dụng có thể giao tiếp với dịch vụ ARCore API được lưu trữ trên Google Cloud.

Tạo dự án Google Cloud mới hoặc sử dụng dự án hiện có

Nếu bạn có một dự án hiện có, hãy chọn dự án đó.

Chuyển đến bộ chọn dự án

Nếu bạn chưa có dự án trên đám mây của Google Cloud, hãy tạo một dự án.

Tạo dự án mới

Bật ARCore API

Để sử dụng ARCore API, bạn phải bật API này trong dự án của mình.

Bật ARCore API

Thiết lập phương thức uỷ quyền

Ứng dụng iOS có thể giao tiếp với ARCore API bằng 2 phương thức uỷ quyền khác nhau: Uỷ quyền không cần khoá (phương thức được đề xuất) và Uỷ quyền bằng khoá API:

  • Uỷ quyền không cần khoá sử dụng mã thông báo đã ký để kiểm soát quyền truy cập vào API. Phương thức này yêu cầu bạn sở hữu một máy chủ để 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 đám mây của Google. Khoá API thường không được coi là an toàn vì thường có thể truy cập được đối với các ứng dụng. Hãy cân nhắc sử dụng phương thức uỷ quyền bằng mã thông báo để giao tiếp với ARCore API.

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 (Mã thông báo web JSON). Mã thông báo phải được ký bằng Tài khoản dịch vụ Google.

Để 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ủ đá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.

  • Điểm cuối phải tạo mã thông báo mới mỗi lần, sao cho:

    • Mỗi người dùng sẽ nhận được một mã thông báo riêng biệ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ý

Làm theo các bước sau để tạo tài khoản dịch vụ và khoá ký của Google:

  1. Trong Google Cloud, hãy mở trang Thông tin đăng nhập.
    Thông tin đăng nhập
  2. Nhấp vào Tạo thông tin xác thực > Tài khoản dịch vụ.
  3. Trong mục 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.
  4. Trên trang Quyền của 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ụ > Trình tạo mã thông báo tài khoản dịch vụ, rồi nhấp vào Tiếp tục.
  5. 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.
  6. Trên trang Thông tin xác thực, hãy tìm mục Tài khoản dịch vụ rồi nhấp vào tên của tài khoản mà bạn vừa tạo.
  7. Trên trang Service account details (Thông tin chi tiết về tài khoản dịch vụ), hãy di chuyển xuống phần Keys (Khoá) rồi chọn Add Key > Create new key (Thêm khoá > Tạo khoá mới).
  8. Chọn JSON làm loại khoá rồi nhấp vào Tạo.

    Thao tác này sẽ tải một tệp JSON chứa khoá riêng tư xuống máy của bạn. Lưu trữ 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ủ của bạn

Để tạo mã thông báo (JWT) mới trên máy chủ, hãy sử dụng các thư viện JWT tiêu chuẩ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.

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 dùng lệnh oauth2l sau:

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

Bạn cần chỉ định một vị trí trống cho bộ nhớ đệm bằng cờ --cache để đảm bảo mỗi lần đều tạo ra một mã thông báo khác. Nhớ cắt chuỗi kết quả. Khoảng trắng hoặc ký tự dòng mới thừa 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 khai báo sau để 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.
  • expiat + 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 – Khán giả. Bạn phải đặt giá trị này thành https://arcore.googleapis.com/.

Bạn không bắt buộc phải có các giá trị xác nhận không theo tiêu chuẩn trong tải trọng JWT, mặc dù bạn có thể thấy giá trị xác nhận uid hữu ích cho 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 một Google API trong môi trường do Google quản lý, hãy nhớ ký JWT bằng các 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 là chính xác.

Truyền mã thông báo trong phiên ARCore

Ứng dụng của bạn hiện đã được định cấu hình để sử dụng tính năng Xác thực không cần khoá.

Hãy lưu ý những điều sau đây khi bạn truyền mã thông báo vào phiên:

  • Nếu bạn đã sử dụng khoá API để tạo phiên, ARCore sẽ bỏ qua mã thông báo và ghi lại lỗi.

    Nếu không cần khoá API nữa, hãy xoá khoá đó trong Google Developers Console và xoá khoá đó khỏi ứng dụng của bạn.

  • ARCore bỏ qua những mã thông báo có 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ủa bạn hết hạn trong khi đang sử dụng, hãy lấy mã thông báo mới và truyền mã đó đến API.

Khoá API

  1. Trong Google Cloud, hãy mở trang Thông tin đăng nhập.
    Thông tin đăng nhập
  2. Nhấp vào Tạo thông tin xác thực, rồi chọn Khoá API trong trình đơn.
    Hộp thoại khoá API đã tạo sẽ hiển thị chuỗi cho khoá bạn vừa tạo.
  3. Xem tài liệu về các quy tắc hạn chế đối với khoá API để bảo mật khoá API.

Ứng dụng của bạn hiện đã được định cấu hình để sử dụng khoá API.

Bước tiếp theo

Sau khi định cấu hình hoạt động uỷ quyền, hãy xem các tính năng ARCore sau đây sử dụng hoạt động uỷ quyền: