問題反饋

統一的問題反饋調度中心:任何接入項目放一個鏈接或 iframe 即可接入(零代碼),用戶提交建議 / 升級 / 問題 / BUG 並可帶圖片與視頻,AI 先審內容、管理員後臺回復。

/api/feedback/

服務說明

「問題反饋中心」是一套統一的、所有接入項目共用的反饋調度中心。接入非常簡單——子項目零代碼:只要在頁面上放一個指向 /feedback/<你的 APPID>/ 的鏈接(或把它塞進 iframe)即可,反饋表單、附件上傳、AI 審核、公開區與開發者聯繫方式都由本服務託管,你不需要寫任何提交邏輯,也不需要保存任何反饋數據。

用戶側流程:選擇反饋類型(功能建議 / 功能升級 / 使用問題 / BUG 反饋 / 其他)→ 填寫內容(無需標題)→ 選填圖片與視頻(張數、大小上限由後臺統一配置)→ 提交。遊客可直接匿名提交(需先通過圖形驗證碼,並受同 IP 頻率限制);已登錄用戶提交會帶上用戶身份,登錄後可查看「我的反饋」並繼續追問。提交後狀態為「待審核」,AI 審核通過後進入「待處理」,管理員回復後變為「已回復」。

登錄態怎麼傳給反饋頁:子項目前端用用戶自己的 UAC Token 調 POST /api/feedback/ticket換一張一次性、5 分鐘過期的票據,把票據拼進反饋頁地址(?ticket=xxx)作為鏈接或 iframe 地址;反饋頁消費票據後建立會話,並 303 重定向到不帶票據的乾淨地址。這樣 UAC Token 不會落在 URL、瀏覽器歷史與服務器訪問日誌裡。遊客無需票據,直接打開反饋頁即可。

開發者聯繫方式的查看位置(三處):① 反饋頁底部(/feedback/<app_id>/ 的「開發者聯繫方式」卡片);② 公開區頁面同樣展示同一份聯繫方式;③ 子項目也可以在自己的頁面上調用本服務的 GET /api/feedback/contacts?app_id=<APPID>(免簽名)拿到這份數據,自行渲染。聯繫方式由超管在後臺「問題反饋 → 反饋中心設置 → 各項目開發者聯繫方式」按項目分別維護,展示平臺(QQ / QQ 郵箱 / 微信 / Telegram / WhatsApp / Discord 等)與具體值都可自定義,不同項目可以填不同的值。

AI 審核說明:開關與兩套提示詞都在後臺「反饋中心設置 → AI 審核」裡配置(留空則使用內置通用規則)。規則就是提示詞——後臺寫的規則會與反饋正文、提交者信息一起發給 AI,由 AI 判定是否駁回。提交內容的審核在後臺線程裡逐條慢慢審,不佔用你的接口調用;平臺沒有配置可用 AI 模型時自動跳過審核,提交直接進入「待處理」。管理員回復前 AI 也會審一遍語氣,但只提醒、不阻斷,管理員可以修改後重發,也可以強制發送(強制發送會記入審核留痕)。若某條反饋因故沒審到(例如審核調用失敗),後臺可以直接對它點「立即送審」優先補審。

數據隔離與公開區:反饋數據按接入項目隔離,後臺可按項目 / 狀態 / 類型 / AI 審核狀態篩選與搜索。每個項目還有一個「公開區」——只展示遊客提交且已通過審查的反饋(不展示任何附件與提交者身份),供訪客搜索是否已經有人提過同樣的問題;管理員可隨時把某條從公開區撤下。

響應格式

所有接口返回同一個 JSON 信封,業務數據都在 data 裡:

{
  "code": 10000,
  "msg": "成功",
  "data": { ... }
}
  • code:業務狀態碼,10000 表示成功;其餘為各類錯誤,完整清單見「錯誤碼」頁。
  • msg:給人看的提示文案,可直接展示給終端用戶,但不要用它做邏輯判斷。
  • data:業務數據;出錯時通常為 null。各接口 data 的具體字段見該接口的「響應說明」。

判斷成功與否請看 code,不要依賴 HTTP 狀態碼。 查看完整錯誤碼

維護中 該服務當前處於「維護中」狀態,接口可能臨時不可用。以下文檔與調試僅供了解。

反饋中心(託管反饋頁接入)

站內反饋庫(數據按接入項目隔離) 開放 · 免簽名

兩個端點都免簽名(服務策略裡配成 open):ticket 的憑證是調用方本來就持有的用戶 UAC Token,contacts 是公開信息。提交、查看與回復都不走 /api/,而是在 /feedback/<app_id>/ 反饋頁上由本站直接處理。

POST /api/feedback/ticket 累計調用 0 次

換取反饋頁一次性票據

用用戶的 UAC Token 換一張一次性票據(5 分鐘過期),子項目把它拼進反饋頁地址即可讓用戶以登錄身份提交反饋。

用戶在你項目下的 UAC Token(Token 綁定項目,跨項目的 Token 無效)

  • 票據一次性且 5 分鐘過期:用完或過期即廢,重複使用會被忽略(反饋頁按遊客處理)。
  • 拼接方式:/feedback/<app_id>/?ticket=<ticket>,作為鏈接或 iframe 地址交瀏覽器打開。
響應說明 外層統一格式
字段 類型 說明
ticket string 一次性票據
expire_in int 有效期(秒)
app_id string 接入項目 APPID
app_name string 接入項目名稱
返回示例
{"ticket": "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6", "expire_in": 300, "app_id": "app_xxxxxxxx", "app_name": "Example App"}
GET /api/feedback/contacts 累計調用 0 次

查詢項目開發者聯繫方式

查詢某個接入項目已啟用的開發者聯繫方式(平臺名 / 值 / 可點擊鏈接),與反饋頁底部展示的是同一份數據。

在後臺「接入項目」裡查到的 APPID

  • contacts[].url 為空串表示該平臺未配置跳轉模板,此時按純文本展示。
  • 平臺被停用或該項目的該項被清空後,對應條目不再返回。
響應說明 外層統一格式
字段 類型 說明
app_id string 接入項目 APPID
app_name string 接入項目名稱
contacts array 開發者聯繫方式列表
contacts[].platform string 平臺代碼
contacts[].name string 平臺名稱
contacts[].icon string 平臺圖標
contacts[].label string 值標籤
contacts[].value string 聯繫方式值
contacts[].url string 可點擊鏈接(空串為純文本)
返回示例
{"app_id": "app_xxxxxxxx", "app_name": "Example App", "contacts": [{"platform": "qq", "name": "QQ", "icon": "https://cdn.example.com/qq.svg", "label": "QQ", "value": "12345678", "url": "https://wpa.qq.com/msgrd?v=3&uin=12345678"}]}
小影API · 通用 API 聚合服務