小程序內容審核接口
微信規定凡是用戶生成內容(UGC)都必須過濾——文字走
msgSecCheck、圖片走imgSecCheck。戶外探險團的行前 Q&A、團員照片留言、相簿全部都是 UGC,都要接這兩個接口,否則被檢舉等於違規。
兩個必接接口
1. msgSecCheck(文字審核)
- 接受字串,回傳是否含違禁內容(黃賭毒、政治敏感、辱罵)
- 戶外探險用例:行前 Q&A 留言、團員心得、領隊回覆、相簿圖說
- 速率上限:4000 次/分鐘
- 從 雲函數 呼叫(不要從前端,AppSecret 會洩漏)
// 雲函數示意
const result = await cloud.openapi.security.msgSecCheck({
content: userInput,
scene: 1, // 1=資料、2=評論、3=論壇、4=社交日誌
openid: ctx.OPENID,
version: 2,
})
if (result.errCode !== 0) {
// 違規處理:擋下、警告用戶、紀錄
}2. imgSecCheck(圖片審核)
- 接受圖片 URL 或檔案,回傳是否合規
- 戶外探險用例:客人上傳的相簿、領隊履歷照、團體大合照
- 圖片大小上限:1MB(超過要先壓縮)
- 速率上限:2000 次/分鐘
const result = await cloud.openapi.security.imgSecCheck({
media: { contentType: 'image/jpeg', value: imgBuffer },
})接入位置
| 內容類型 | 接入時機 | 接口 |
|---|---|---|
| Q&A 留言 / 評論 | 提交時 | msgSecCheck |
| 客人 profile 文字(暱稱、自我介紹) | 註冊 / 更新時 | msgSecCheck |
| 客人上傳照片 | 上傳前 | imgSecCheck(先 裁切壓縮) |
| 相簿封面、團體照 | 領隊上傳時 | imgSecCheck |
| 領隊履歷照 | 註冊時 | imgSecCheck |
| 行程描述(領隊寫) | 提交時 | msgSecCheck |
違規處理策略
接口回傳違規後,不能直接全擋——要分級:
| 違規等級 | 處理 |
|---|---|
| 嚴重(黃賭毒) | 擋下 + 紀錄 + 通知客戶帳號 |
| 中度(辱罵) | 擋下 + 提示用戶改寫 |
| 輕度(疑似) | 通過但人工複核(領隊看一下) |
| 通過 | 正常顯示 |
戶外探險特殊風險:救援 / 醫療描述容易被誤判(「中暑」「失溫」「骨折」可能觸發醫療關鍵字審核),要白名單化或加 disclaimer。
反模式
❌ 從前端直接呼叫接口 — AppSecret 洩漏 ❌ 違規不紀錄 — 出事後查不到 ❌ 不審核圖片 — 客人上傳違禁照片整個 AppID 被連坐 ❌ 接口失敗就放行 — 要 fail-safe(網路問題重試 N 次後阻擋)
跟其他概念的關係
強連結
- 微信雲開發 — 從雲函數呼叫
- 小程序合規與備案 — 內容審核是「事中合規」
- 代客戶開發小程序注意事項 — 交付清單必含此設定
- we-cropper 圖片裁切上傳 — 圖片要先壓縮才能餵進 imgSecCheck(1MB 上限)
深入閱讀
- 原文:WeChat_Mini_Program_Project_Proposal_Notion §3
- msgSecCheck 文件:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html
- imgSecCheck 文件:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html
← 回到 wiki