Tích hợp tính năng Lấy lại của Dịch vụ trò chơi của Play vào ứng dụng

Đăng nhập liền mạch người dùng vào trò chơi của bạn trong khi tiếp tục sử dụng hệ thống tài khoản của riêng bạn. Với API Ghi nhớ của Dịch vụ trò chơi của Play, bạn có thể liên kết tài khoản trong trò chơi với 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 đã 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 API Recall của Android, thì các API Recall này sẽ quen thuộc với bạn. Mọi tính năng tích hợp phía máy chủ với tính năng Gọi lại 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ì các tính năng này giống nhau trên cả Android và máy tính.

Điều kiện tiên quyết

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 việc 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ã dự án được liên kết với Dịch vụ trò chơi của Play. 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) để 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 Lấy lại thông tin khi đăng nhập

Khi trò chơi của bạn đang xử lý quy trình đăng nhập, chẳng hạn như thêm tài khoản trong trò chơi, hãy yêu cầu quyền truy cập Recall bằng GamesRecallClient::RequestRecallAccess().

Lệnh gọi này trả về một mã phiên mà phần phụ trợ của bạn sử dụng để thực hiện 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 của bạ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 Recall

Sau khi trò chơi của bạn có mã phiên Recall và đã chuyển mã này đến máy chủ trò chơi phụ trợ, hãy sử dụng API REST phía máy chủ của Play Games để:

  • Truy vấn các tài khoản đã liên kết hiện có trong trò chơi bằng cách sử dụng recall.retrieveTokens
  • Thêm hoặc cập nhật các tài khoản được liên kết trong trò chơi bằng cách sử dụng recall.linkPersona
  • Xoá các tài khoản được liên kết trong trò chơi bằng recall.unlinkPersona

Để biết hướng dẫn chi tiết hơn về cách tích hợp phía máy chủ, hãy xem tài liệu về cách sử dụng Recall API trong máy chủ trò chơi.