Вызов API

API Recall позволяет играм управлять связями между пользователями Google Play Games Services (PGS) и их внутриигровыми учетными записями, сохраняя токены отзыва на серверах Google. Вот пример сценария использования API Recall.

  1. Пользователь играет в игру, в которой разработчик использует систему идентификации для отслеживания прогресса пользователя и применяет PGS параллельно с другими методами аутентификации для входа пользователей в игру. В этом примере пользователь авторизован в своей учетной записи PGS под именем Laura и создает внутриигровую учетную запись в системе идентификации разработчика под названием Racer94 . По мере того, как пользователь играет в игру, игровой сервер разработчика синхронизирует его прогресс.

    Пользователь авторизован с помощью PGS и внутриигровой учетной записи.

  2. Отдельно разработчик сохраняет в Google токен для повторного обращения, который соответствует внутриигровой учетной записи пользователя. Google автоматически сохраняет этот токен для повторного обращения в профиле пользователя в PGS.

    Игровой сервер хранит токен отзыва в Google-серверах

  3. Пользователь решает впервые сыграть в игру на GPG на ПК . Пользователь автоматически проходит аутентификацию с помощью своей учетной записи PGS, и игровой клиент проверяет наличие прогресса для этого пользователя PGS. Затем игровой сервер запрашивает у Google информацию о наличии токенов для этой учетной записи PGS. Поскольку токены есть, Google отправляет обратно токен восстановления, и игровой сервер использует этот токен для поиска связанной с пользователем учетной записи Racer94 и восстановления его прогресса. Поскольку аутентификация с помощью PGS происходит без каких-либо проблем, прогресс пользователя восстанавливается приложением без необходимости ввода имени пользователя или пароля. Кроме того, разработчик может использовать аутентификацию PGS со своей существующей системой идентификации и полагаться на Google в хранении связи между прогрессом игрока и его учетной записью PGS.

    Игровой сервер восстанавливает прогресс с помощью токена отзыва. токен

Как показано в приведенном ранее примере, API Recall выполняет два основных действия:

  • Сохранение токена в Google при входе пользователя в систему с помощью одной из внутриигровых учетных записей.

  • Получение токена для пользователя с целью восстановления его внутриигровых учетных записей.

Помимо токенов восстановления, API восстановления также требует наличия стабильного идентификатора, соответствующего внутриигровой учетной записи, известного как персона . Персону можно рассматривать как метку, представляющую внутриигровую учетную запись пользователя в системе идентификации разработчика, а токен восстановления — как ключ, используемый для восстановления внутриигровой учетной записи пользователя в игре. Значения персоны и токенов не должны использоваться повторно в разных проектах PGS . Кроме того, хотя токены восстановления могут меняться со временем, персона должна оставаться стабильной в соответствии с внутриигровой учетной записью пользователя.

Технические схемы хранения и извлечения токенов отзыва

В этом разделе описывается технический процесс взаимодействия между игровым клиентом и серверами Google при хранении и извлечении токенов отзыва.

Шаг 1: Аутентифицируйте пользователя PGS и получите идентификатор сессии.

Игра инициализирует SDK PGS и пытается аутентифицировать пользователя в PGS.

Аутентификация пользователя с помощью PGS

Предполагая, что пользователь авторизован, запросите идентификатор сессии у Games SDK на игровом клиенте и запросите токен OAuth 2.0 у бэкэнда OAuth от Google. Идентификатор сессии и токены OAuth 2.0 используются для связи с бэкэндом Google Games.

Разработчик запрашивает сессию ID

Шаг 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 открывает игру.

  1. Пользователь без профиля PGS запускает игру, в которой включена функция вызова без профиля.
  2. Games SDK запускает автоматическую аутентификацию платформы, которая завершается неудачей, поскольку у пользователя отсутствует профиль PGS.
  3. В Games SDK отображается всплывающее сообщение, информирующее пользователя об интеграции игры с Google. Это всплывающее сообщение содержит интерактивную функцию — пользователь может отключить функцию повторного вызова до создания профиля.
  4. Игра запрашивает доступ для отзыва. Обратите внимание, что PGS отклоняет запросы на доступ для отзыва, если на устройстве есть профили PGS или если на устройстве нет учетных записей Google. В этом случае игра должна продолжаться без использования PGS.
  5. После входа пользователя в игру с помощью внутриигрового аккаунта, игра создает для него пару токен и персона, соответствующую его внутриигровому аккаунту. Игра хранит эту пару в Google. Игра может сохранить больше токенов позже, если пользователь войдет в другие внутриигровые аккаунты.

Запустить игру на новом устройстве

  1. Пользователь без профиля PGS запускает игру, в которой на устройстве включена функция вызова без профиля.
  2. Игра записывает токен отзыва без привязки к конкретному профилю, как описано в разделе «Сохранение пары токен-персона» .
  3. Пользователь запускает ту же игру на другом устройстве с теми же настройками учетной записи.
  4. SDK для игр запускает создание профиля. Пользователь может просмотреть и отклонить ранее сохраненные токены отзыва. В этот момент пользователь создает профиль PGS.
  5. Автоматическая аутентификация платформы в PGS завершена, и игра получает статус аутентифицированной.
  6. Игра, как обычно, извлекает для пользователя токены возвращения.

Следующие шаги

Для интеграции API функции Recall с вашим клиентом и игровым сервером следуйте этим инструкциям .