跳至內容

角色變更通知 ​

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

OmniChat · 讓互動自然發生