Đăng nhập người dùng vào trò chơi một cách liền mạch trong khi vẫn tiếp tục sử dụng hệ thống tài khoản của riêng bạn. Với Recall API của Dịch vụ trò chơi của Play, bạn có thể liên kết các tài khoản trong trò chơi với một tài khoản Dịch vụ trò chơi của Google Play. Sau đó, khi người dùng chơi trò chơi của bạn trên nhiều thiết bị (hoặc trên cùng một thiết bị sau khi cài đặt lại trò chơi), bạn sẽ truy vấn tài khoản trong trò chơi được liên kết và đơn giản hoá quy trình đăng nhập.
Nếu bạn đã tích hợp với Recall API của Android, thì các Recall API này sẽ quen thuộc. Mọi hoạt động tích hợp phía máy chủ với Recall API của Dịch vụ trò chơi của Play đều có thể được các trò chơi trên máy tính sử dụng lại vì chúng giống nhau trên cả Android và máy tính.
Điều kiện tiên quyết
Hoàn tất quá trình thiết lập SDK.
Đọc bài viết tổng quan về Recall API của Dịch vụ trò chơi của Play.
Hoàn tất quá trình thiết lập Dịch vụ trò chơi của Google Play trong Play Console.
Bước 1: Thêm mã dự án Dịch vụ trò chơi của Play vào tệp kê khai
Sau khi hoàn tất quá trình thiết lập Dịch vụ trò chơi của Play trong Play Console, trò chơi của bạn hiện có một mã dự án Dịch vụ trò chơi của Play được liên kết. Sử dụng mã dự án này,
có thể tìm thấy trong trang Cấu hình của Dịch vụ trò chơi của Play trong Play Console, hãy cập nhật
manifest.xml của trò chơi.
Nội dung manifest.xml mẫu:
<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
<?Application>
<?PackageName>com.example.package<?/PackageName>
<?PlayGamesServices>
<?ProjectId>123456789<?/ProjectId>
<?/PlayGamesServices>
<?/Application>
<?/Manifest>
Bước 2: Yêu cầu quyền truy cập vào tính năng Gợi nhắc khi đăng nhập
Khi trò chơi của bạn đang xử lý quy trình đăng nhập (ví dụ: thêm tài khoản trong trò chơi)
hãy yêu cầu quyền truy cập vào tính năng Gợi nhắc bằng cách sử dụng
GamesRecallClient::RequestRecallAccess().
Lệnh gọi này trả về một mã phiên hoạt động mà phần phụ trợ của bạn sử dụng để thực hiện các lệnh gọi phía máy chủ đến Google nhằm liên kết và huỷ liên kết các tài khoản trong trò chơi với người dùng Dịch vụ trò chơi của Play.
auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
promise->set_value(std::move(result));
});
auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
auto recall_session_id = recall_access_result.value().recall_session_id;
// Pass the recall session ID to your backend game server so it can query
// for an existing linked in-game account.
// - If you discover an existing linked in-game account, continue to sign-in
// the in-game account. This provides a seamless cross-device sign-in
// experience.
// - If there is not an existing linked in-game account, when the user
// completes the sign-in using your in-game account system record the
// account linking with Play Games Services Recall. This helps to provide
// a seamless cross-device sign-in experience when the user returns on a
// different device or after re-installing your game on the same device.
} else {
// Handle the error
}
Bước 3: Xử lý mã phiên hoạt động Gợi nhắc
Sau khi trò chơi của bạn có mã phiên hoạt động Gợi nhắc và đã chuyển mã này đến máy chủ trò chơi phụ trợ, hãy sử dụng REST API phía máy chủ của Play Games để:
- Truy vấn các tài khoản trong trò chơi được liên kết hiện có bằng cách sử dụng
recall.retrieveTokens - Thêm hoặc cập nhật các tài khoản trong trò chơi được liên kết bằng cách sử dụng
recall.linkPersona - Xoá các tài khoản trong trò chơi được liên kết bằng cách sử dụng
recall.unlinkPersona