【💰】有人用过微信小程序的文本内容安全识别(wxa/msg_sec_check)接口吗
现在我做的一个小程序一直不给我过,发的帖子和评论一直不过,因为一些涉黄的评论可以发出,导致审核一直不给我过,现在返回的是 label100,可以过,

金币池金币数量会随着回复数量动态增加,回复有概率获得金币池中部分金币奖励。
现在我做的一个小程序一直不给我过,发的帖子和评论一直不过,因为一些涉黄的评论可以发出,导致审核一直不给我过,现在返回的是 label100,可以过,

金币池金币数量会随着回复数量动态增加,回复有概率获得金币池中部分金币奖励。
看错了,我第一反应是你要做这么一个接口。但是我怀疑你这个图别有用意,就是想曲线发这么一条评论。
那没有,我就是想知道这是什么问题,这个涉黄评论微信小程序审核那卡了我半个月了,恶心死我了
之前没人回复主要原因不是金币,是因为不知道你的问题是什么,涉及到交互式的社区,审核是基本要求,你后台自己审核或者用微信审核都是拿到对应样本的分数,然后自己决定如何处理,现在看你帖子不知道你的问题是什么。
现在我发布的评论涉黄,但是微信的文本监管接口没有拦截我发布的涉黄评论,直接让通过了
他明确说是因为你的 sh 评论能展示,所以不给你过,让你修改还是?
你现在想要调整让微信文本审核接口能发挥功能, 还是想要让你的程序能正常过审上线?
带评论功能的小程序很难做。
@libra2 一直说让我接微信的文本检测接口,我已经接了,而且也同步判断了,我上传图片也是这个写法,上传黄图就会自动拦截,但是文本就不行,说些涉黄的言论还是可以通过
Label 值,判定结果,详细含义
100,正常,内容安全,建议直接放行
10001,广告,包含营销推广、骚扰等信息
20001,时政,涉及敏感政治人物、事件或负面时政
20002,色情,包含淫秽、低俗、色情描写
20003,辱骂,包含人身攻击、恶毒咒骂
20006,违法犯罪,涉及违禁品、欺诈、博彩等内容
20008,欺诈,仿冒、兼职诈骗等内容
感觉就是接口本身的问题
没有语义分析?
@libra2 是啊,我感觉他这个接口是不是就有问题,恶心死我了
我猜测你的问题是返回的标签 100,建议 pass,实际上应该拦截,检查下发过去的 content 是不是用户的评论,会不会发错了,用个简单的 http 测一下看看,然后再放进业务里面,在前后打印日志,看看被检测的内容是否获取正确,贴这么多代码没多少人看。
我去测试一下,稍后给你答复。
OK 谢谢大佬
@hhillmanpick 我已经测试了,微信端没问题,应该是你取值的问题,取错了文本,导致发过去检测的是正常的文本。

@cnskis OK,那我再看看。谢谢大佬
厉害厉害
@cnskis 还是不行
@hhillmanpick 条件允许的话装个 UU 远程,明天我远程看看。
@cnskis 已经搞定了,谢谢大佬

我发现是小程序无法拦截,但是调试工具确实是确认违规了,我后端代码那也传的是正确的 content,有点奇怪了
这个页面图太多了,现在有毒,看几次拉到,最后的时候整个浏览器就跳,过一会就白屏了
估计是图和我插件什么的冲突。
有可能哈哈哈哈
打印传入的内容了吗?我之前经常遇到取值的问题,就是取字符串取成 object、json 对象,实际上不是值,或者是取成键值对的键。
打印了,传的就是这个
文本检测 {'content': '我想草拟', 'openid': 'ozxtT15kwJZrIeer7GsJQ9nMphqA', 'scene': 2, 'version': 2} {'errcode': 0, 'errmsg': 'ok', 'detail': [{'strategy': 'keyword', 'errcode': 0}, {'strategy': 'content_model', 'errcode': 0, 'suggest': 'pass', 'label': 100, 'prob': 90}], 'trace_id': '6968a9a1-40bcc957-15249ba8', 'result': {'suggest': 'pass', 'label': 100}}
@hhillmanpick 这个是 pass 的,图中的文本是不通过的,你在发起请求的地方打断点看看。
@hhillmanpick 看你 截图 version 和 scene 值传的和 @cnskis 的不一样,你传一致试试呢?
@libra2 2 是评论的类型,所以传的是 2,3 是帖子类型
@hhillmanpick 哦哦 , 最后怎么解决的一定要反馈下, 实在不行换别的检测允许么。
你是自己后端检测还是怎么检测的,你后端检测就是 HTTPS 方式调用,那就是和调试工具一样的,不存在小程序无法拦截这种说法,我看第一张图像是你的后端返回的。
这个是微信接口检测的
我就是来蹭金币的。😁
cy 金币
最近小程序被打回,今天也在弄这东西
图片,文本都需要审核
我是 PHP 后端实现
hdd 试了一遍都正常,后来发现 ldr 名字不能审核通过
idr 吗,那你也会出现我这种情况吗
兄弟们燃尽了,自己写了个本地的违禁词,现在可以了,受不了,后面拦不住我再加其他违禁词进去,微信这个接口有 bug,我看有很多人都说拦不住,我已经提交了工单,看看微信后续什么结果吧,总的来说就是多媒体违禁拦截的接口没问题,文本违禁拦截的接口有问题,不一定全部可以拦截,需要自己写本地的违禁词拦截 😒
所以说是小程序自身问题?
应该是接口有问题
问题已经解决,欢迎各位过来拿金币
拿不到 更笨拿不到。
import logging
from dataclasses import dataclass
from typing import Any, Optional, Iterable, List
import requests
from django.conf import settings
from django.core.cache import cache
from rest_framework.exceptions import ValidationError
logger = logging.getLogger(name)
def _normalize_wx_resp(raw: Optional[dict]) -> dict:
raw = raw or {}
return {
"errcode": raw.get("errcode", 0),
"errmsg": raw.get("errmsg", ""),
"trace_id": raw.get("trace_id", ""),
"result": raw.get("result") or {},
"detail": raw.get("detail") or [],
}
def check_text_and_report(
*,
user,
text: str,
scene: int,
strict: bool = True,
require_openid: bool = True,
) -> dict:
appid = getattr(settings, "WECHAT_APPID", "") or getattr(settings, "WX_MINI_APPID", "")
secret = getattr(settings, "WECHAT_SECRET", "") or getattr(settings, "WX_MINI_SECRET", "")
if not appid or not secret:
raise ValidationError("未配置 WECHAT_APPID/WECHAT_SECRET,无法进行内容审核")
@dataclass
class WxSecCheckResult:
ok: bool
suggest: str = ""
label: Optional[int] = None
raw: Optional[dict] = None
class WeChatMiniProgramSecCheck:
TOKEN_URL = " https://api.weixin.qq.com/cgi-bin/token "
MSG_SEC_CHECK_URL = " https://api.weixin.qq.com/wxa/msg_sec_check "
def get_user_openid(user) -> Optional[str]:
for key in ("openid", "wx_openid", "wechat_openid"):
v = getattr(user, key, None)
if v:
return v
def _split_text(text: str, max_len: int = 2000) -> Iterable[str]:
"""
微信 msg_sec_check 文本长度通常不超过 2000 字符:contentReference[oaicite:2]{index=2}
超长就分段逐段检测。
"""
s = (text or "").strip()
if not s:
return []
def check_text_or_raise(*, user, text: str, scene: int, strict: bool = False, require_openid: bool = False) -> None:
appid = getattr(settings, "WECHAT_APPID", "") or getattr(settings, "WX_MINI_APPID", "")
secret = getattr(settings, "WECHAT_SECRET", "") or getattr(settings, "WX_MINI_SECRET", "")
if not appid or not secret:
raise ValidationError("未配置 WECHAT_APPID/WECHAT_SECRET,无法进行内容审核")