权限升级
在玩家收到具有权限的会话后,他们可能希望允许其他权限。权限可能因以下原因被禁止:
- 他们低于默认启用权限的年龄阈值。
- 他们低于权限的绝对最低要求年龄。
- 权限只能通过父母/监护人的同意启用,并且在同意过程中未启用。
请求新权限
信息
/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"
}
]
}
}
处理升级流程
- 检查权限:在请求升级之前,检查当前会话以查看哪些权限可用以及哪些需要监护人同意
- 请求升级:使用请求的权限调用
/session/upgrade - 处理挑战:如果返回挑战,遵循与初始 VPC 流程相同的工作流
- 更新会话:一旦授予同意,使用
/session/get检索更新的会话