角色變更通知
在控制台「開放接口」新增用途為「角色變更通知」(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 查詢當前資料,彌補未接收的通知。目前未提供通知補發或角色批次列舉的開放接口。