角色变更通知
在控制台「开放接口」添加用途为「角色变更通知」(PERSONA)的回调,验证后启用。与消息回调分开配置,使用该用途自己的签名密钥。
通知格式
平台以 POST 发送 JSON,OC-Event-Type: persona.changed,OC-Event-Id 和 Idempotency-Key 均为正文的 eventId。先按回调签名验证,再处理数据。
json
{
"eventId": "9001",
"type": "persona.changed",
"change": "published",
"source": "console",
"occurredAt": "2026-10-26T08:00:00Z",
"persona": {
"personaId": "11",
"personaUid": "anchor-001",
"status": "ACTIVE",
"version": 2,
"nickname": "小雪",
"bio": "喜欢旅行",
"privateEnabled": true,
"liveEnabled": false
}
}change | 触发时机 |
|---|---|
created | 控制台或 API 创建角色 |
published | 发布新版本 |
paused / resumed | 暂停/恢复角色 |
binding | 绑定、更换或解除 UID;persona.previousPersonaUid 带旧值,可能为 null |
source 为 console 或 api。API 发起的变更同样通知;接入方若已处理接口响应,可忽略 api 来源。仅保存草稿不产生以上变更通知。
persona 优先使用发布配置摘要;未发布的新角色使用草稿摘要,version=0。未绑定时 personaUid=null。需要完整数据时使用查询角色。
可靠接收
- 仅在回调已启用时,通知与角色变更在同一事务写入;变更回滚则不入队。入队不等于保证送达。
- 没有启用回调期间的变更不记录、不补发;入队后回调被停用,投递时会跳过。
- 同一角色按顺序投递;前一条仍在重试时后一条等待。前一条最终失败后会继续后续通知。
- 2xx 表示成功;4xx(408、429 除外)停止重试;超时、5xx 等按 10 秒、30 秒、2 分钟、10 分钟退避,最多尝试 5 次。平台不跟随重定向。
- 按
eventId去重并保存处理结果;重试返回已有结果。比较version和occurredAt,但不要仅按发布版本去重:绑定和暂停可能保持相同版本。
首次接入或重新启用回调后,按已知角色 UID 查询当前数据,弥补未接收的通知。目前未提供通知补发或角色批量枚举的开放接口。