三叔博客 - 小程序
type: channel
link: https://www.sanshu.cn/tag/%E5%B0%8F%E7%A8%8B%E5%BA%8F/
items: 使用微信小程序API来审核内容的合法性

使用微信小程序API来审核内容的合法性
type: item
date: 2024-09-14T15:08:00+08:00
description: 要在 Java 程序中使用微信小程序的内容审核功能（msgSecCheck 接口），您需要完成以下步骤：获取 Access Token：调用微信接口前，首先需要获取小程序的全局唯一后台接口调用凭据 access_token。调用 msgSecCheck 接口：使用获取的 access_token，向微信服务器发送内容审核请求。下面我提供一套完整的 Java 代码，包括获取 access_token 和审核内容的方法，您可以直接传入内容进行审核。package cn.sanshu.service.impl; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.time.Instant; public class WeChatContentCheckerServiceImpl { private static final String APPID = ""; private static final String openid = ""; private static final String APPSECRET = ""; private static final String TOKEN_FILE_PATH = "access_token.json"; // 存储 access_token 的文件路径 private static final String content = ""; public static void main(String[] args) { try { SceneType scene = SceneType.COMMENT; // 场景值（1 资料；2 评论；3 论坛；4 社交日志） String result = checkMessage(content, scene, openid); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } // 获取 access_token 的方法 public static String getAccessToken() throws IOException { String cachedToken = getCachedAccessToken(); if (cachedToken != null) { return cachedToken; } String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + APPID + "&secret=" + APPSECRET; HttpResponse response = HttpUtil.createGet(url).execute(); JSONObject json = JSONUtil.parseObj(response.body()); if (json.containsKey("access_token")) { String accessToken = json.getStr("access_token"); int expiresIn = json.getInt("expires_in"); // 缓存 access_token cacheAccessToken(accessToken, expiresIn); return accessToken; } else { throw new IOException("获取 access_token 失败：" + json.toString()); } } // 审核内容的方法，使用 Hutool 的 POST 请求 public static String checkMessage(String content, SceneType scene, String openid) throws IOException { String accessToken = getAcc…