【💰】有人用过微信小程序的文本内容安全识别(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 远程,明天我远程看看。

我发现是小程序无法拦截,但是调试工具确实是确认违规了,我后端代码那也传的是正确的 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 名字不能审核通过
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,无法进行内容审核")