评论

微信小程序内容安全校验接口 security.msgSecCheck python代码

之前自己写的时候检测测试的时候,发现一直pass,搞了一阵发现原来是编码的问题。 所以贴一下最终的代码,供参考

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
最后一次编辑于  2022-03-09  
点赞 3
收藏
评论

4 个评论

  • Daemon
    Daemon
    09-20

    代码是可以工作,注意2点

    1. 个人资料使用scene1并携带content和nickname
    2. 其他场景,无论是论坛发帖/评论都使用scene2并只携带content,不用使用其他的检测不准,也不要携带title,也不准。同样scene2, content和title都是彼时若互裸朋友,一个也不视频应声,返回居然是通过的。
    09-20
    赞同
    回复
  • {袁}
    {袁}
    2023-10-22

    感觉没什么词啊,都返回没问题,,,,到底那些词是违规词吗?

    能给我一些测试吗?谢谢

    2023-10-22
    赞同
    回复
  • 刘三岁
    刘三岁
    2022-11-25

    为什么我输入什么都可以成功啊

    2022-11-25
    赞同
    回复
  • Jackie
    Jackie
    2022-11-23

    新冠病毒

    2022-11-23
    赞同
    回复
登录 后发表内容