微信小程序内容安全校验接口 security.msgSecCheck python代码
发布于 2 年前 作者 fli 4167 次浏览 来自 分享
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
回到顶部