跳到主要内容

权限升级

在玩家收到具有权限的会话后,他们可能希望允许其他权限。权限可能因以下原因被禁止:

  1. 他们低于默认启用权限的年龄阈值。
  2. 他们低于权限的绝对最低要求年龄。
  3. 权限只能通过父母/监护人的同意启用,并且在同意过程中未启用。

请求新权限

信息

/session/upgrade API 可用于启用其他权限。任何请求的权限,如果 managedBy 字段设置为 PLAYER,则立即启用。如果有权限的 managedBy 设置为 GUARDIAN,则会为可信成人创建一个挑战以完成同意权限更改。

请求父母同意

当需要可信成人同意来启用权限时,响应中会包含 challenge。此挑战可以通过使用二维码、OTP 或电子邮件与初始年龄门控流程类似地共享。更多信息,请参阅 挑战

提示

一个生活质量差异是可以在不指定电子邮件地址的情况下使用 /challenge/send-email API,API 会向最近为玩家批准权限的可信成人发送电子邮件。这使玩家能够在不自己指定电子邮件地址的情况下请求权限更改。如果未找到关联的电子邮件地址,/challenge/send-email API 会响应 INVALID_EMAIL 错误代码,您必须回退到另一种方法,例如提供二维码、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 检索更新的会话