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