Вызов API

API Recall позволяет играм управлять связями между пользователями игровых сервисов Google Play (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 и получите идентификатор сеанса.

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

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

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

Разработчик запрашивает идентификатор сеанса

Шаг 2: Получите любой доступный токен отзыва.

Запросите любой связанный токен отзыва, связанный с учётной записью пользователя PGS. Если токен есть, перейдите к шагу 3a и восстановите прогресс . В противном случае, если это новый пользователь и у него нет токена, перейдите к шагу 3b и сохраните новый токен .

Разработчик извлекает токен отзыва

Шаг 3а: Если токен присутствует, восстановить прогресс

Если токен присутствует, извлеките и расшифруйте токен и восстановите данные пользователя.

Разработчик восстанавливает данные из токена отзыва

Шаг 3б: Если токена нет, сохраните токен.

Поскольку токен отсутствует, прогресс не восстанавливается. Пользователь переходит к аутентификации на платформе с помощью системы идентификации разработчика или создаёт новую учётную запись, если таковой не существует. Обратите внимание: это не аутентификация в PGS (что уже было сделано), а аутентификация с помощью системы идентификации разработчика вне PGS.

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

Создайте зашифрованный токен отзыва, который кодирует внутриигровой аккаунт пользователя, и отправьте его в Google вместе с идентификатором сессии и токеном OAuth 2.0. На этом этапе Google создаёт связь между отправленным токеном отзыва и учётной записью PGS игрока.

Разработчик хранит токен отзыва

Потоки для пользователей без профиля PGS

Вы можете хранить токены отзыва для пользователя, который ещё не создал профиль PGS, используя режим без профиля. Однако есть два важных момента:

  • Вы не сможете получить токены для пользователя, у которого нет профиля PGS. Запрос на создание профиля автоматически появляется при попытке пользователя войти в вашу игру через игровые сервисы Play на втором устройстве.
  • Вам необходимо следовать дополнительным инструкциям, чтобы убедиться, что у вас есть соответствующее уведомление с описанием следующих пунктов и получено соответствующее согласие конечного пользователя:
    • Предоставление вами данных компании Google для включения функции привязки аккаунта Play Игр.
    • Наличие настроек для управления этим общим доступом, например, настроек Play Игр.
    • Обработка таких данных осуществляется в соответствии с Политикой конфиденциальности 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. Игра извлекает жетоны отзыва для пользователя, как обычно.

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

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