小程序中使用HTTPS调用自带文本安全内容检测接口(msg_sec_check)的实现方法

在小程序中调用自带的文本安全内容检测接口,你需要使用小程序提供的wx.request方法。以下是一个示例代码:

javascript代码:

// 假设你已经获取了access_token,如果不知道如何获取,可以参考我上一篇文章
const access_token = '你的access_token';
 
// 需要检测的文本
const content = '需要检测的文本内容';
 
// 构造请求参数
const params = {
  content: content
};
 
// 构造请求URL
const url = `https://api.weixin.qq.com/wxa/msg_sec_check?access_token=${access_token}`;
 
// 发起POST请求
wx.request({
  url: url,
  method: 'POST',
  data: params,
  success(res) {
    // 检查返回的结果
    console.log(res.data);//obj [object Object]
    
    console.log('res.data', res.data.toString()); //res.data   [object Object]
    console.log('内容输出', JSON.stringify(res.data)); //  {"errcode":0,"errmsg":"ok"}
   // 使用 JSON.stringify 将数组转换成 JSON 字符串,
   // 使用 JSON.parse 将该字符串重新转换成数组
    
                 if(res.data.errmsg =="ok"){
                    console.log("输入的内容心愿是否合法安全的======合法安全");
                     //进行下一步操作
                   }
                   else{
                    console.log("输入的内容心愿是否安全的======不合法");
                   }
},
  fail(err) {
    console.error('请求失败', err);
  }
});

在这里插入图片描述

返回说明:

//正常返回0
{
      "errcode": "0",
      "errmsg": "ok"
}

//当content内含有敏感信息,则返回87014
{
    "errcode": 87014,
    "errmsg": "risky content"
}

//其余错误见返回码说明
{
    "errcode": 40001,
    "errmsg": "invalid credential, access_token is invalid or not latest"
}
以下是Java实现微信小程序内容安全检测的示例代码: ```java import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class WxMaSecCheckUtil { private static final String API_URL = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN"; private static final String CHARSET = "UTF-8"; /** * 调用微信内容安全检测接口 * * @param accessToken 微信 access_token * @param content 待检测内容 * @return boolean 是否合规,true:合规,false:不合规 */ public static boolean checkMsgSec(String accessToken, String content) { try { URL url = new URL(API_URL.replace("ACCESS_TOKEN", accessToken)); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json;charset=" + CHARSET); connection.setRequestProperty("Connection", "Keep-Alive"); connection.connect(); DataOutputStream out = new DataOutputStream(connection.getOutputStream()); String postJson = "{\"content\":\"" + content + "\"}"; out.write(postJson.getBytes(CHARSET)); out.flush(); out.close(); InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, CHARSET)); StringBuffer buffer = new StringBuffer(); String line = ""; while ((line = reader.readLine()) != null) { buffer.append(line); } reader.close(); String result = buffer.toString(); inputStream.close(); connection.disconnect(); // 根据返回结果判断是否合规 if (result.indexOf("\"errcode\":0") != -1) { return true; } else { return false; } } catch (Exception e) { e.printStackTrace(); return false; } } /** * 计算字符串 SHA1 值 * * @param str * @return */ private static String getSha1(String str) { if (str == null || str.length() == 0) { return null; } try { MessageDigest md = MessageDigest.getInstance("SHA-1"); md.update(str.getBytes()); byte[] digest = md.digest(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < digest.length; i++) { sb.append(String.format("%02x", digest[i])); } return sb.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return null; } } } ``` 使用方法: 1. 替换API_URL中的ACCESS_TOKEN为实际的access_token; 2. 调用checkMsgSec方法进行内容检测,传入accessToken和待检测内容即可。 注意:此示例仅供参考,实际使用中需要根据业务需求进行修改。同时,微信官方也提供了PHP和Node.js等语言的示例代码,可以参考官方文档进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曦月合一

你的鼓励是我们前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值