Recall API cho phép trò chơi quản lý liên kết giữa người dùng Dịch vụ trò chơi của Google Play (PGS) và tài khoản trong trò chơi bằng cách lưu trữ mã gọi lại trên máy chủ của Google. Dưới đây là trường hợp ví dụ về cách sử dụng Recall API.
Khi người dùng chơi trò chơi, nhà phát triển có thể theo dõi tiến trình của người dùng qua một hệ thống nhận dạng, ngoài ra còn sử dụng PGS đồng thời với các phương thức xác thực khác để đăng nhập người dùng vào trò chơi. Trong ví dụ này, người dùng đăng nhập vào tài khoản PGS với tên Laura và tạo một tài khoản trong trò chơi bằng hệ thống nhận dạng của nhà phát triển với tên Racer94. Khi người dùng này chơi trò chơi, máy chủ trò chơi của nhà phát triển sẽ đồng bộ hoá tiến trình của họ.
Ngoài ra, nhà phát triển sẽ lưu lại một mã gọi lại với Google, tương ứng với tài khoản của người dùng trong trò chơi. Google tự động lưu trữ mã gọi lại này vào hồ sơ PGS của người dùng.
Người dùng lúc này quyết định lần đầu chơi trò chơi qua GPG trên máy tính. Người dùng sẽ tự động được đăng nhập thông qua tài khoản PGS. Ứng dụng trò chơi sẽ kiểm tra xem có tiến trình nào đã lưu trữ trước đó thuộc về người dùng PGS này hay không. Sau đó, máy chủ trò chơi sẽ truy vấn Google để xem có mã nào thuộc về tài khoản PGS này hay không. Vì nếu có, Google sẽ gửi lại mã gọi lại để máy chủ trò chơi tìm tài khoản Racer94 được liên kết của người dùng và khôi phục tiến trình của họ. Vì quá trình đăng nhập bằng PGS là một trải nghiệm không gián đoạn, nên tiến trình của người dùng sẽ được ứng dụng khôi phục mà không cần người dùng nhập tên người dùng hoặc mật khẩu. Ngoài ra, nhà phát triển có thể sử dụng tính năng đăng nhập vào PGS bằng hệ thống nhận dạng hiện có, đồng thời dựa vào Google để lưu trữ mối liên kết giữa tiến trình của người chơi với tài khoản PGS của người này.
Như trong ví dụ trước, Recall API có thể thực hiện hai hành động chính:
Lưu trữ mã thông báo với Google khi người dùng đăng nhập bằng một trong các tài khoản trong trò chơi.
Truy xuất mã thông báo cho người dùng để khôi phục tài khoản của họ trong trò chơi.
Ngoài mã gọi lại, Recall API cũng yêu cầu một giá trị nhận dạng bất biến tương ứng với tài khoản trong trò chơi, còn gọi là persona, để thực thi các quy tắc ràng buộc về số lượng giá trị riêng biệt. Bạn có thể coi persona là nhãn đại diện cho tài khoản của người dùng trong trò chơi theo trong hệ thống nhận dạng của nhà phát triển, còn mã gọi lại là khoá dùng để khôi phục tài khoản của người dùng trong trò chơi. Không được sử dụng lại giá trị persona và mã thông báo giữa nhiều dự án PGS. Ngoài ra, tuy mã gọi lại có thể thay đổi theo thời gian, nhưng persona thì luôn ổn định theo tài khoản của người dùng trong trò chơi.
Quy tắc về số lượng giá trị riêng biệt
Recall API thực thi mối quan hệ 1:1 giữa hồ sơ PGS và tài khoản trong trò chơi (gọi là quy tắc về số lượng giá trị riêng biệt), trong đó một persona chỉ có thể liên kết với một hồ sơ PGS, và một hồ sơ PGS chỉ có thể được liên kết với một persona. Vì mã gọi lại có thể thay đổi theo thời gian, nên persona được dùng làm giá trị nhận dạng bất biến cho tài khoản trong trò chơi.
Persona liên kết với hồ sơ PGS cũng có thể thay đổi theo thời gian (vì nhiều tài khoản trong trò chơi đều có thể liên kết với hồ sơ PGS).
Quy trình kỹ thuật để lưu trữ và truy xuất mã gọi lại
Phần này đề cập đến quy trình kỹ thuật giữa ứng dụng khách và máy chủ của trò chơi với máy chủ của Google khi lưu trữ và truy xuất mã gọi lại.
Bước 1: Đăng nhập vào Người dùng PGS và truy xuất mã phiên hoạt động
Trò chơi khởi chạy SDK PGS và đăng nhập người dùng bằng PGS.
Giả sử người dùng đã đăng nhập, hãy yêu cầu mã phiên hoạt động từ SDK trò chơi trên ứng dụng trò chơi và yêu cầu mã OAuth 2.0 từ phần phụ trợ OAuth của Google. Mã phiên hoạt động và mã OAuth 2.0 được dùng để giao tiếp với phần phụ trợ của Google Games.
Bước 2: Truy xuất mọi mã gọi lại hiện có
Hãy yêu cầu mọi mã gọi lại được liên kết với tài khoản của người dùng PGS. Nếu có mã, hãy chuyển sang Bước 3a và khôi phục tiến trình. Ngược lại, nếu đây là người dùng mới và chưa có mã này, hãy chuyển sang Bước 3b và lưu trữ mã mới.
Bước 3a: Nếu có mã, hãy khôi phục tiến trình
Nếu có mã, hãy truy xuất và giải mã mã đó rồi khôi phục dữ liệu người dùng.
Bước 3b: Nếu không có mã nào, hãy lưu trữ một mã
Vì không có mã nên sẽ không khôi phục tiến trình nào. Người dùng tiếp tục đăng nhập bằng hệ thống danh tính của nhà phát triển hoặc tạo một tài khoản mới nếu không có tài khoản. Lưu ý: Đây không phải là đăng nhập bằng PGS (đã thực hiện trước đó), mà là đăng nhập bằng hệ thống nhận dạng của nhà phát triển bên ngoài PGS.
Tạo một mã gọi lại đã mã hoá để mã hoá tài khoản của người dùng trong trò chơi, rồi gửi cho Google cùng với ID phiên và mã OAuth 2.0. Tới đây, Google sẽ tạo mối liên kết giữa mã gọi lại đã gửi và tài khoản PGS của người chơi.
Quy trình cho người dùng không có hồ sơ PGS
Bạn có thể lưu trữ mã thông báo thu hồi cho người dùng chưa tạo hồ sơ PGS bằng cách sử dụng chế độ không có hồ sơ. Tuy nhiên, có hai điều quan trọng bạn cần lưu ý:
- Bạn không thể truy xuất mã thông báo cho người dùng không có hồ sơ PGS. Hệ thống sẽ tự động nhắc người dùng tạo hồ sơ khi họ cố gắng đăng nhập vào trò chơi của bạn bằng Dịch vụ trò chơi của Play trên một thiết bị thứ hai.
- Bạn phải tuân thủ các nguyên tắc bổ sung để đảm bảo rằng bạn có thông báo thích hợp mô tả các mục sau và có được sự đồng ý thích hợp của người dùng cuối:
- Việc bạn chia sẻ dữ liệu với Google để bật tính năng liên kết tài khoản Play Games.
- Có chế độ cài đặt để quản lý việc chia sẻ này, chẳng hạn như chế độ cài đặt Play Games.
- Việc xử lý dữ liệu đó theo Chính sách quyền riêng tư của Google.
Lưu trữ một cặp mã thông báo và persona
- Người dùng không có hồ sơ PGS mở một trò chơi đã bật tính năng thu hồi không có hồ sơ.
- SDK Games kích hoạt tính năng đăng nhập tự động nhưng không thành công vì người dùng không có hồ sơ PGS.
- SDK Games hiển thị một thanh thông báo nhanh để thông báo cho người dùng rằng trò chơi đã tích hợp với Google. Thanh thông báo nhanh này có thể thao tác được – người dùng có thể tắt tính năng gọi lại cho đến khi tạo hồ sơ.
- Trò chơi yêu cầu quyền truy cập vào tính năng gọi lại. Xin lưu ý rằng PGS từ chối các yêu cầu truy cập vào tính năng thu hồi khi có hồ sơ PGS trên thiết bị hoặc khi không có Tài khoản Google trên thiết bị. Trong trường hợp đó, trò chơi sẽ tiếp tục mà không cần sử dụng PGS.
- Sau khi người dùng đăng nhập bằng tài khoản trong trò chơi, trò chơi sẽ tạo một cặp mã thông báo và persona cho người dùng tương ứng với tài khoản của họ trong trò chơi. Trò chơi sẽ lưu trữ cặp này với Google. Trò chơi có thể lưu trữ thêm mã thông báo sau này nếu người dùng đăng nhập vào các tài khoản khác trong trò chơi.
Chạy trò chơi trên thiết bị mới
- Người dùng không có hồ sơ PGS mở một trò chơi đã bật tính năng thu hồi không có hồ sơ trên thiết bị.
- Trò chơi ghi lại mã gọi lại không có hồ sơ như mô tả trong phần Lưu trữ một mã thông báo và cặp persona.
- Người dùng mở cùng một trò chơi trên một thiết bị khác có cùng chế độ thiết lập tài khoản.
- SDK Games kích hoạt quá trình tạo hồ sơ. Người dùng có thể xem lại và từ chối các mã gọi lại đã lưu trữ trước đó. Người dùng sẽ tạo hồ sơ PGS tại thời điểm này.
- Quá trình đăng nhập tự động vào PGS hoàn tất và trò chơi nhận được trạng thái đã xác thực.
- Trò chơi truy xuất mã thông báo gọi lại cho người dùng như bình thường.
Các bước tiếp theo
Để tích hợp Recall API với ứng dụng khách và máy chủ trò chơi, hãy làm theo hướng dẫn này.