API Recall позволяет играм управлять связями между пользователями Google Play Games Services (PGS) и их внутриигровыми учетными записями, сохраняя токены отзыва на серверах Google. Вот пример сценария использования API Recall.
Пользователь играет в игру, в которой разработчик использует систему идентификации для отслеживания прогресса пользователя и применяет PGS параллельно с другими методами аутентификации для входа пользователей в игру. В этом примере пользователь авторизован в своей учетной записи PGS под именем Laura и создает внутриигровую учетную запись в системе идентификации разработчика под названием Racer94 . По мере того, как пользователь играет в игру, игровой сервер разработчика синхронизирует его прогресс.
Отдельно разработчик сохраняет в Google токен для повторного обращения, который соответствует внутриигровой учетной записи пользователя. Google автоматически сохраняет этот токен для повторного обращения в профиле пользователя в PGS.
Пользователь решает впервые сыграть в игру на GPG на ПК . Пользователь автоматически проходит аутентификацию с помощью своей учетной записи PGS, и игровой клиент проверяет наличие прогресса для этого пользователя PGS. Затем игровой сервер запрашивает у Google информацию о наличии токенов для этой учетной записи PGS. Поскольку токены есть, Google отправляет обратно токен восстановления, и игровой сервер использует этот токен для поиска связанной с пользователем учетной записи Racer94 и восстановления его прогресса. Поскольку аутентификация с помощью PGS происходит без каких-либо проблем, прогресс пользователя восстанавливается приложением без необходимости ввода имени пользователя или пароля. Кроме того, разработчик может использовать аутентификацию PGS со своей существующей системой идентификации и полагаться на Google в хранении связи между прогрессом игрока и его учетной записью PGS.
Как показано в приведенном ранее примере, API Recall выполняет два основных действия:
Сохранение токена в Google при входе пользователя в систему с помощью одной из внутриигровых учетных записей.
Получение токена для пользователя с целью восстановления его внутриигровых учетных записей.
Помимо токенов восстановления, API восстановления также требует наличия стабильного идентификатора, соответствующего внутриигровой учетной записи, известного как персона . Персону можно рассматривать как метку, представляющую внутриигровую учетную запись пользователя в системе идентификации разработчика, а токен восстановления — как ключ, используемый для восстановления внутриигровой учетной записи пользователя в игре. Значения персоны и токенов не должны использоваться повторно в разных проектах PGS . Кроме того, хотя токены восстановления могут меняться со временем, персона должна оставаться стабильной в соответствии с внутриигровой учетной записью пользователя.
Технические схемы хранения и извлечения токенов отзыва
В этом разделе описывается технический процесс взаимодействия между игровым клиентом и серверами Google при хранении и извлечении токенов отзыва.
Шаг 1: Аутентифицируйте пользователя PGS и получите идентификатор сессии.
Игра инициализирует SDK PGS и пытается аутентифицировать пользователя в PGS.
Предполагая, что пользователь авторизован, запросите идентификатор сессии у Games SDK на игровом клиенте и запросите токен OAuth 2.0 у бэкэнда OAuth от Google. Идентификатор сессии и токены OAuth 2.0 используются для связи с бэкэндом Google Games.
Шаг 2: Получите любой доступный токен отзыва.
Запросите токен, связанный с учетной записью пользователя PGS. Если токен присутствует, перейдите к шагу 3a и восстановите прогресс . В противном случае, если это новый пользователь и у него нет токена, перейдите к шагу 3b и сохраните новый токен .
Шаг 3а: Если токен присутствует, восстановите прогресс.
Если токен присутствует, получите и расшифруйте его, а затем восстановите данные пользователя.
Шаг 3b: Если токен отсутствует, сохраните токен.
Поскольку токен отсутствует, прогресс не восстанавливается. Пользователь переходит к аутентификации на платформе с помощью системы идентификации разработчика или создает новую учетную запись, если таковая отсутствует. Примечание: это не аутентификация через PGS (которая уже была выполнена), а аутентификация через систему идентификации разработчика вне PGS.
Создайте зашифрованный токен для восстановления доступа, который кодирует внутриигровую учетную запись пользователя, и отправьте его в Google вместе с идентификатором сессии и токеном OAuth 2.0. На этом этапе Google устанавливает связь между отправленным токеном и учетной записью игрока в PGS.
Последовательности действий для пользователей без профиля PGS
Вы можете сохранять токены отзыва для пользователя, который еще не создал профиль PGS, используя беспрофильный режим. Однако есть два важных нюанса:
- Вы не можете получить токены для пользователя, у которого нет профиля PGS. Создание профиля запрашивается автоматически, когда пользователь пытается войти в вашу игру с помощью Play Games Services на другом устройстве.
- Для обеспечения наличия надлежащего уведомления с описанием следующих пунктов и получения соответствующего согласия конечного пользователя необходимо соблюдать дополнительные правила :
- Вы предоставляете Google данные для активации функции привязки учетных записей Play Games.
- Доступны настройки для управления этим обменом данными, например, настройки Play Games.
- Обработка таких данных осуществляется в соответствии с Политикой конфиденциальности Google .
Сохраните пару "токен" и "персона".
- Пользователь без профиля PGS запускает игру, в которой включена функция вызова без профиля.
- Games SDK запускает автоматическую аутентификацию платформы, которая завершается неудачей, поскольку у пользователя отсутствует профиль PGS.
- В Games SDK отображается всплывающее сообщение, информирующее пользователя об интеграции игры с Google. Это всплывающее сообщение содержит интерактивную функцию — пользователь может отключить функцию повторного вызова до создания профиля.
- Игра запрашивает доступ для отзыва. Обратите внимание, что PGS отклоняет запросы на доступ для отзыва, если на устройстве есть профили PGS или если на устройстве нет учетных записей Google. В этом случае игра должна продолжаться без использования PGS.
- После входа пользователя в игру с помощью внутриигрового аккаунта, игра создает для него пару токен и персона, соответствующую его внутриигровому аккаунту. Игра хранит эту пару в Google. Игра может сохранить больше токенов позже, если пользователь войдет в другие внутриигровые аккаунты.
Запустить игру на новом устройстве
- Пользователь без профиля PGS запускает игру, в которой на устройстве включена функция вызова без профиля.
- Игра записывает токен отзыва без привязки к конкретному профилю, как описано в разделе «Сохранение пары токен-персона» .
- Пользователь запускает ту же игру на другом устройстве с теми же настройками учетной записи.
- SDK для игр запускает создание профиля. Пользователь может просмотреть и отклонить ранее сохраненные токены отзыва. В этот момент пользователь создает профиль PGS.
- Автоматическая аутентификация платформы в PGS завершена, и игра получает статус аутентифицированной.
- Игра, как обычно, извлекает для пользователя токены возвращения.
Следующие шаги
Для интеграции API функции Recall с вашим клиентом и игровым сервером следуйте этим инструкциям .