Recall API

Recall API를 사용하면 게임에서 Google 서버에 리콜 토큰을 저장하여 Google Play 게임즈 서비스 (PGS) 사용자와 게임 내 계정 간의 링크를 관리할 수 있습니다. 다음은 Recall API를 사용하는 방법에 관한 샘플 시나리오입니다.

  1. 사용자는 개발자가 사용자 진행 상황을 추적하는 ID 시스템을 보유하고 다른 인증 방법과 함께 PGS를 사용하여 사용자를 게임에 로그인시키는 게임을 플레이합니다. 이 예에서는 사용자가 PGS 계정 Laura에 로그인하고 개발자의 ID 시스템 Racer94로 게임 내 계정을 만듭니다. 사용자가 게임을 플레이하면 개발자의 게임 서버가 진행 상황을 동기화합니다.

    사용자가 PGS 및 게임 내 계정으로 로그인함

  2. 별도로 개발자는 사용자의 게임 내 계정에 해당하는 리콜 토큰을 Google에 저장합니다. Google은 사용자의 PGS 프로필에 대해 해당 리콜 토큰을 자동으로 저장합니다.

    게임 서버는 Google 서버에 리콜 토큰을 저장함

  3. 이제 사용자는 처음으로 PC의 GPG에서 게임을 플레이하기로 합니다. 사용자는 PGS 계정으로 자동으로 로그인되고 게임 클라이언트는 이 PGS 사용자에게 진행 상황이 있는지 확인합니다. 그러면 게임 서버가 Google에 쿼리하여 이 PGS 계정의 토큰이 있는지 확인합니다. 토큰이 있으므로 Google은 리콜 토큰을 다시 보내고, 게임 서버는 이 토큰을 사용하여 사용자의 연결된 계정 Racer94를 찾아 진행 상황을 복원합니다. PGS로 로그인하는 것은 원활한 환경이므로 사용자가 사용자 이름이나 비밀번호를 입력하지 않고도 사용자의 진행 상황이 앱에서 복원됩니다. 또한 개발자는 기존 ID 시스템으로 PGS 로그인을 사용할 수 있으며 Google을 통해 플레이어 진행 상황과 PGS 계정 간의 링크를 저장할 수 있습니다.

    게임 서버가 리콜 토큰으로 진행 상황을 복원함

앞의 예에서 볼 수 있듯이 Recall API는 두 가지 기본 작업을 실행합니다.

  • 사용자가 게임 내 계정 중 하나로 로그인할 때 Google에 토큰을 저장합니다.

  • 게임 내 계정을 복원하기 위해 사용자의 토큰을 검색합니다.

리콜 토큰 외에도 Recall API에는 카디널리티 제약 조건을 적용하기 위해 캐릭터라고 하는 게임 내 계정에 해당하는 안정적인 식별자가 필요합니다. 캐릭터는 개발자의 ID 시스템 내에서 사용자의 게임 내 계정을 나타내는 라벨로, 리콜 토큰은 사용자의 게임 내 계정을 게임에 복원하는 데 사용되는 키로 생각할 수 있습니다. 캐릭터 및 토큰 값은 여러 PGS 프로젝트에서 재사용되면 안 됩니다. 또한 리콜 토큰은 시간이 지남에 따라 변경될 수 있지만 캐릭터는 사용자의 게임 내 계정에 따라 안정적이어야 합니다.

카디널리티 규칙

Recall API는 PGS 프로필과 게임 내 계정 간에 1:1 관계를 적용합니다(카디널리티 규칙이라고 함). 이 경우 하나의 캐릭터는 하나의 PGS 프로필에만 연결될 수 있고 하나의 PGS 프로필은 하나의 캐릭터에만 연결될 수 있습니다. 캐릭터는 게임 내 계정의 안정적인 식별자로 사용됩니다. 리콜 토큰은 시간이 지남에 따라 변경될 수 있기 때문입니다.

PGS 프로필에 연결된 캐릭터도 시간이 지남에 따라 변경될 수 있습니다(다양한 게임 내 계정이 PGS 프로필에 연결되어 있기 때문).

리콜 토큰 저장 및 검색을 위한 기술 흐름

이 섹션에서는 리콜 토큰을 저장하고 검색할 때 게임 클라이언트와 Google 서버가 있는 서버 간의 기술 흐름을 설명합니다.

1단계: PGS 사용자 로그인 및 세션 ID 검색

게임은 PGS SDK를 초기화하고 PGS로 사용자 로그인을 시도합니다.

사용자가 PGS로 로그인함

사용자가 로그인 상태라고 가정하고 게임 클라이언트의 게임 SDK에서 세션 ID를 요청하고 Google의 OAuth 백엔드에서 OAuth 2.0 토큰을 요청합니다. 세션 ID 및 OAuth 2.0 토큰은 Google 게임 백엔드와 통신하는 데 사용됩니다.

개발자가 세션 ID를 요청함

2단계: 사용 가능한 리콜 토큰 검색

PGS 사용자 계정과 연결된 리콜 토큰을 요청합니다. 토큰이 있으면 3a단계로 진행하여 진행 상황을 복원합니다. 신규 사용자이고 토큰이 없는 경우 3b단계로 진행하여 새 토큰을 저장합니다.

개발자가 리콜 토큰을 검색함

3a단계: 토큰이 있는 경우 진행 상황 복원

토큰이 있는 경우 토큰을 검색 및 복호화하고 사용자 데이터를 복원합니다.

개발자가 리콜 토큰에서 데이터를 복원함

3b단계: 토큰이 없는 경우 토큰 저장

토큰이 없으므로 진행 상황이 복원되지 않습니다. 사용자는 개발자의 ID 시스템으로 로그인하거나 계정이 없는 경우 새 계정을 만듭니다. 참고: 이는 이미 완료된 PGS로 로그인하는 것이 아니라 PGS 외부의 개발자 ID 시스템으로 로그인하는 것입니다.

사용자가 게임 내 계정으로 로그인함

사용자의 게임 내 계정을 인코딩하는 암호화된 리콜 토큰을 만들고 세션 ID 및 OAuth 2.0 토큰과 함께 Google에 전송합니다. 이 시점에서 Google은 전송된 리콜 토큰과 플레이어의 PGS 계정 간에 연결을 만듭니다.

개발자가 리콜 토큰을 저장함

PGS 프로필이 없는 사용자의 흐름

프로필이 없는 모드를 사용하여 아직 PGS 프로필을 만들지 않은 사용자의 리콜 토큰을 저장할 수 있습니다. 하지만 두 가지 중요한 주의사항이 있습니다.

  • PGS 프로필이 없는 사용자의 토큰은 가져올 수 없습니다. 사용자가 두 번째 기기에서 Play 게임즈 서비스를 사용하여 게임에 로그인하려고 하면 프로필 생성 메시지가 자동으로 표시됩니다.
  • 다음 항목을 설명하는 적절한 알림을 제공하고 적절한 최종 사용자 동의를 얻으려면 추가 가이드라인을 따라야 합니다.
    • Play 게임즈 계정 연결 기능을 사용 설정하기 위해 Google과 데이터를 공유합니다.
    • Play 게임즈 설정과 같이 이 공유를 관리하는 설정을 사용할 수 있는지 여부
    • Google 개인정보처리방침에 따른 이러한 데이터의 처리

토큰 및 캐릭터 쌍 저장

PGS 프로필이 없는 사용자가 게임을 엽니다.

  1. PGS 프로필이 없는 사용자가 프로필이 없는 리콜이 사용 설정된 게임을 엽니다.
  2. Games SDK가 자동 로그인을 트리거하지만 사용자에게 PGS 프로필이 없어 실패합니다.
  3. 게임 SDK는 게임이 Google과 통합되었음을 사용자에게 알리는 스낵바를 표시합니다. 이 스낵바는 사용자가 작업할 수 있습니다. 사용자는 프로필이 생성될 때까지 리콜을 사용 중지할 수 있습니다.
  4. 게임에서 리콜 액세스를 요청합니다. 기기에 PGS 프로필이 있거나 기기에 Google 계정이 없는 경우 PGS는 리콜 액세스 요청을 거부합니다. 이 경우 게임은 PGS를 사용하지 않고 진행해야 합니다.
  5. 사용자가 게임 내 계정으로 로그인하면 게임은 사용자의 게임 내 계정에 해당하는 토큰 및 캐릭터 쌍을 만듭니다. 게임은 이 쌍을 Google에 저장합니다. 나중에 사용자가 다른 인게임 계정에 로그인하면 게임에서 더 많은 토큰을 저장할 수 있습니다.

새 기기에서 게임 실행

  1. PGS 프로필이 없는 사용자가 기기에서 프로필이 없는 리콜이 사용 설정된 게임을 엽니다.
  2. 게임은 토큰 및 캐릭터 쌍 저장에 설명된 대로 프로필이 없는 리콜 토큰을 기록합니다.
  3. 사용자가 동일한 계정 설정이 적용된 다른 기기에서 동일한 게임을 엽니다.
  4. Games SDK가 프로필 생성을 트리거합니다. 사용자는 이전에 저장된 리콜 토큰을 검토하고 거부할 수 있습니다. 이때 사용자가 PGS 프로필을 만듭니다.
  5. PGS에 대한 자동 로그인이 완료되고 게임은 인증된 상태를 수신합니다.
  6. 게임은 평소와 같이 사용자의 리콜 토큰을 검색합니다.

다음 단계

Recall API를 클라이언트 및 게임 서버와 통합하려면 이 안내를 따르세요.