Обеспечьте беспрепятственный вход пользователей в вашу игру, продолжая использовать собственную систему учетных записей. С помощью API Play Games Services Recall вы можете связать внутриигровые учетные записи с учетной записью Google Play Games Services, а затем, когда пользователь играет в вашу игру на разных устройствах (или на одном и том же устройстве после переустановки игры), вы запрашиваете связанную внутриигровую учетную запись и оптимизируете процесс входа в систему.
Если вы интегрировались с API функции запоминания данных Android , то эти API должны показаться вам знакомыми. Любые серверные интеграции с сервисами Play Games Services Recall можно повторно использовать в играх для ПК, поскольку они одинаковы как для Android, так и для ПК.
Предварительные требования
Завершите настройку SDK .
Ознакомьтесь с обзором API вызова сервисов Play Games .
Завершите настройку сервисов Google Play Games в Play Console.
Шаг 1 : Добавьте идентификатор вашего проекта Play Games Services в манифест.
После завершения настройки Play Games Services в Play Console, ваша игра получит связанный с ней идентификатор проекта Play Games Services. Используя этот идентификатор проекта, который можно найти на странице конфигурации Play Games Services в Play Console, обновите manifest.xml вашей игры.
Пример содержимого файла manifest.xml :
<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
<Application>
<PackageName>com.example.package</PackageName>
<PlayGamesServices>
<ProjectId>123456789</ProjectId>
</PlayGamesServices>
</Application>
</Manifest>
Шаг 2 : Запросите отзыв доступа при входе в систему.
Когда ваша игра обрабатывает процесс входа в систему, например, добавление внутриигровой учетной записи, запросите доступ к функции «Recall Access» с помощью GamesRecallClient::RequestRecallAccess() .
Этот вызов возвращает идентификатор сессии, который используется вашим бэкэндом для выполнения серверных запросов к Google с целью привязки и отвязки ваших внутриигровых учетных записей от пользователей Play Games Services.
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
}
Шаг 3 : Обработка идентификатора сессии «Отзыв».
После того как ваша игра получит идентификатор сессии Recall и передаст его на ваш сервер, используйте серверные REST API Play Games для:
- Запрос существующих связанных внутриигровых учетных записей с помощью
recall.retrieveTokens - Добавляйте или обновляйте связанные внутриигровые учетные записи с помощью
recall.linkPersona - Удалите связанные внутриигровые учетные записи с помощью
recall.unlinkPersona
Более подробное руководство по интеграции на стороне сервера см. в документации по использованию API Recall на вашем игровом сервере .