メインコンテンツに移動

セッション

k-ID Sessionには、現在のプレイヤーと場所の権限と年齢ステータスのコレクションが含まれています。すべてのプレイヤーにはアクティブなSessionが必要です。ゲームは、アクティブなSessionを参照して、機能がゲームで許可されているか禁止されているかを決定する必要があります。

セッションとは?

k-ID Sessionは、特定の管轄区域でのゲーム内のプレイヤーの権限を記述する長期オブジェクトです。年齢に関係なく、すべてのプレイヤーはゲームにアクセスするために必要な長期のk-ID Sessionを取得します。セッションには、プレイヤーがゲームをプレイしている管轄区域でのプレイヤーの権限が含まれます。

子供やティーンエイジャーの場合、セッションは、信頼できる大人が権限を追加または削除するか、誕生日により年齢が変更されることで変更される可能性があります。セッションは通常、ゲームによってローカルストレージまたはクラウドストレージにキャッシュされます。セッションは、ゲームがプレイヤーアカウントを実装している場合、ゲーム内のプレイヤーのアイデンティティに関連付けることもできます。

セッションのライフサイクル

k-ID Sessionは自動的に期限切れになりません。プレイヤーに関連付けられたローカルストレージまたはクラウドストレージにキャッシュされるように設計されています。子供やティーンエイジャーの場合、親がFamily Connectを使用して権限を追加または削除するか、プレイヤーが誕生日を迎えてセッションが確立された管轄区域で新しい年齢カテゴリに「年齢が上がる」ことで、セッションが変更される可能性があります。

Sessionはキャッシュされるように設計されているため、ゲームが起動するたびに/session/get APIを使用してセッションを更新し、行われた変更を取得する必要があります。

セッション構造

セッションには以下が含まれます:

  • sessionId: セッションの一意の識別子
  • jurisdiction: セッションが作成された管轄区域
  • dateOfBirth: プレイヤーの生年月日(収集された場合)
  • ageStatus: プレイヤーの年齢ステータス(DIGITAL_MINORDIGITAL_YOUTH、またはLEGAL_ADULT
  • permissions: 有効/無効ステータスを含む権限の配列
  • kuid: k-IDユーザーID(プレイヤーがVPCを経た場合)
  • status: セッションステータス(ACTIVEまたはDELETED
  • etag: キャッシュ検証用のエンティティタグ

セッションの例:

{
"session": {
"ageStatus": "LEGAL_ADULT",
"dateOfBirth": "2005-04-15",
"etag": "6d9d24fccd428f845b355122799948dd0a52fc5d",
"jurisdiction": "US-CA",
"kuid": "123456",
"permissions": [
{
"enabled": true,
"managedBy": "PLAYER",
"name": "ai-generated-avatars"
},
{
"enabled": true,
"managedBy": "PLAYER",
"name": "text-chat-private"
}
],
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"status": "ACTIVE"
},
"status": "PASS"
}

セッションの取得

セッションは2つの方法で取得できます:

  • /session/get: sessionIdまたはkuidでセッションを取得する
  • /age-gate/check: 年齢ゲートフローの一部としてセッションを作成または更新する

/session/get APIは、etagパラメータを使用した条件付きリクエストをサポートします。セッションが最後のリクエスト以降変更されていない場合、APIはHTTP 304(Not Modified)を返し、不要なデータ転送を回避できます。

セッションのキャッシュ

Sessionはローカルストレージまたはクラウドストレージにキャッシュする必要があり、プレイヤーのアカウントに関連付けることができます。k-IDセッションは、親が権限を更新するか、子供やティーンエイジャーが次の年齢カテゴリに「年齢が上がる」か、親またはプレイヤーによって削除された場合にのみ変更されます。

ゲームが起動するたびに/session/get APIからセッションを更新することを推奨しますが、これは明示的に必須ではありません。さらに、k-ID Webhooksを使用して、/session/get APIを呼び出す代わりにSessionの更新を受信できます。k-ID APIに問題がある場合、更新を後で延期することもできます。キャッシュされたセッションを使用して、問題が解決されるまでの間、k-ID APIに接続せずに権限を管理できます。

セッションとプレイヤーのアイデンティティ

k-ID Sessionは、プレイヤーのIDに強く関連付けられていると考えることができます。ゲームがIDシステムを使用する場合、Session自体は、プレイヤーのアカウントに関連付けられたストレージを使用して、JSONドキュメントとして完全に保存できます。

デバイス間のセッション

Sessionオブジェクトをローカルストレージにキャッシュする場合、同じプレイヤーに対して複数のデバイスのローカルストレージに異なるセッションが存在する可能性があります。プレイヤーが新しいデバイスでゲームをプレイする場合、年齢ゲートがプレイヤーに表示され、以前に必要だった場合は再度同意を求める必要があります。

同意を複数回リクエストする必要を避けるために、k-IDセッションをプレイヤーアカウントに関連付けられたクラウドストレージに保存し、プレイヤーが任意のデバイスにログインするたびに取得できます。この場合、デバイス間でもプレイヤーに対して1つのSessionのみが存在します。

セッションWebhooks

Compliance Studioで、k-IDからのイベントを受信するWebhookを登録できます。これにより、プレイヤーが「年齢が上がる」場合を除き、k-IDセッションのまれな変更を取得するために/session/getを呼び出す必要がなくなります。

以下のwebhookイベントはセッションに関連しています:

詳細については、Webhooksを参照してください。