微信小程序内容安全校验接口 security.msgSecCheck python代码
def wx_msg_sec_check(access_token, open_id, content, scene=2, nickname=None, title=None, signature=None):
"""
微信检测文本是否合规
参考文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html
access_token string 是 接口调用凭证
version number 是 接口版本号,2.0版本为固定值2
openid string 是 用户的openid(用户需在近两小时访问过小程序)
scene number 是 场景枚举值(1 资料;2 评论;3 论坛;4 社交日志)
content string 是 需检测的文本内容,文本字数的上限为2500字,需使用UTF-8编码
nickname string 否 用户昵称,需使用UTF-8编码
title string 否 文本标题,需使用UTF-8编码
signature string 否 个性签名,该参数仅在资料类场景有效(scene=1),需使用UTF-8编码
"""
request_url = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token=' + access_token
body = {
'version': 2,
'openid': open_id,
'scene': scene,
'content': content,
}
if nickname:
body['nickname'] = nickname
if title:
body['title'] = title
if signature:
body['signature'] = signature
data = json.dumps(body, ensure_ascii=False).encode('utf-8')
headers = {'Content-Type': 'application/json'}
wx_resp = requests.post(request_url, data=data, headers=headers).json()
if wx_resp.get('errcode') is not None and wx_resp.get('errcode') != 0:
err_msg = '请求微信检测文本是否合规接口错误,errcode:%s, errMsg:%s' % (str(wx_resp.get('errcode')), wx_resp.get('errmsg'))
raise InternalError(msg=err_msg)
result = wx_resp.get('result')
label = result.get('label')
return True if label == 100 else False