メインコンテンツに移動

権限アップグレード

プレイヤーが権限付きのセッションを受信した後、追加の権限を許可したい場合があります。権限は、以下の理由で不許可になる可能性があります:

  1. 権限がデフォルトで有効になる年齢閾値を下回っている
  2. 権限の絶対最小必要年齢を下回っている
  3. 権限は親/保護者の同意がある場合にのみ有効にでき、同意プロセス中に有効にならなかった

新しい権限のリクエスト

情報

/session/upgrade APIを使用して、追加の権限を有効にできます。managedByフィールドがPLAYERに設定されているリクエストされた権限は、すぐに有効になります。managedByGUARDIANに設定されている権限がある場合、信頼できる大人が権限変更に同意するために完了するチャレンジが作成されます。

親の同意を求める

権限を有効にするために信頼できる大人の同意が必要な場合、レスポンスにchallengeが含まれます。このチャレンジは、QRコード、OTP、またはメールを使用して、初期の年齢ゲートプロセスと同様に共有できます。詳細については、チャレンジを参照してください。

ヒント

品質向上の違いの1つは、メールアドレスを指定せずに/challenge/send-email APIを使用でき、APIがプレイヤーの権限を最も最近承認した信頼できる大人にメールを送信することです。これにより、プレイヤーはメールアドレスを自分で指定せずに権限変更をリクエストできます。関連するメールアドレスが見つからない場合、/challenge/send-email APIはINVALID_EMAILエラーコードで応答し、QRコードの提供、OTP、またはプレイヤーに信頼できる大人のメールアドレスを入力するよう求めるなど、別の方法にフォールバックする必要があります。

リクエストの例

POST /api/v1/session/upgrade
Content-Type: application/json
Authorization: Bearer your-api-key

{
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"requestedPermissions": [
{
"name": "voice-chat"
}
]
}

チャレンジ付きレスポンスの例

権限が保護者の同意を必要とする場合、レスポンスにはチャレンジが含まれます:

{
"status": "CHALLENGE",
"challenge": {
"challengeId": "683409f1-2930-4132-89ad-827462eed9af",
"oneTimePassword": "ABC123",
"type": "CHALLENGE_PARENTAL_CONSENT",
"url": "https://family.k-id.com/authorize?otp=ABC123"
}
}

チャレンジなしのレスポンスの例

リクエストされたすべての権限がプレイヤーによって有効にできる場合、レスポンスには更新されたセッションが含まれます:

{
"status": "PASS",
"session": {
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"permissions": [
{
"enabled": true,
"managedBy": "PLAYER",
"name": "voice-chat"
}
]
}
}

アップグレードフローの処理

  1. 権限をチェック: アップグレードをリクエストする前に、現在のセッションをチェックして、どの権限が利用可能で、どの権限が保護者の同意を必要とするかを確認する
  2. アップグレードをリクエスト: リクエストされた権限で/session/upgradeを呼び出す
  3. チャレンジを処理: チャレンジが返された場合、初期のVPCフローと同じワークフローに従う
  4. セッションを更新: 同意が付与されたら、/session/getを使用して更新されたセッションを取得する