Java微信公众号开发之微信素材管理工具类

1、前言

微信公众号在使用接口的时候是通过传入media_id来进行调用的,所以在使用的接口的时候我们往往需要先上传素材,然后拿到微信返回给我们的media_id去调用相关接口,素材管理分为临时素材和永久素材

1)、临时素材媒体文件在微信后台保存时间为3天,即3天后media_id失效,详细文档查看:上传临时素材

2)、开发者可通过本接口上传到微信服务器,永久使用。新增的永久素材也可以在公众平台官网素材管理模块中查询管理。
除了可以上传以上提到的4种素材外,还可以上传图文素材。
以下是一些说明:
a. 公众号的素材库保存总数量有上限:图文消息素材、图片素材上限为5000,其他类型为1000。
b. 图文消息的具体内容中,微信后台将过滤外部的图片链接,图片url需通过"上传图文消息内的图片获取URL"接口上传图片获取。
c. "上传图文消息内的图片获取URL"接口所上传的图片,不占用公众号的素材库中图片数量的5000个的限制,图片仅支持jpg/png格式,大小必须在1MB以下。
d. 图文消息支持正文中插入自己帐号和其他公众号已群发文章链接的能力。

3)、支持上传素材的格式和限制如下</

### 使用 Spring Boot 开发微信公众号教程 #### 1. 前置准备工作 为了能够顺利地集成微信公众号到Spring Boot应用程序中,需完成以下前置工作: - 注册微信公众平台账号并创建相应的公众号。 - 获取`appId`和`appSecret`这两个核心参数用于后续的身份验证与授权操作[^1]。 #### 2. 引入必要的依赖项 在项目的`pom.xml`文件内加入如下Maven依赖来支持微信功能模块的开发: ```xml <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp-spring-boot-starter</artifactId> <version>${wx.java.version}</version> </dependency> ``` 此部分配置使得开发者可以更便捷地调用微信开放平台所提供的API接口[^2]。 #### 3. 应用程序配置 (`application.yml`) 接下来,在`src/main/resources/application.yml`中添加关于微信公众号的相关设置信息: ```yaml wechat: mp: appId: wxxxxxxxxxxxxxxx # 替换成自己的AppID secret: xxxxxxxxxxxxxxxx # 替换成自己的AppSecret token: yourTokenHere aesKey: yourAesKeyIfNeed ``` 这些属性对于初始化SDK以及实现消息加密解密等功能至关重要。 #### 4. 编写 Java ##### Properties 配置 定义一个名为WeChatConfig.properties的Bean对象用来加载上述YAML中的配置值: ```java @ConfigurationProperties(prefix = "wechat.mp") public class WeChatMpProperties { private String appId; private String secret; private String token; private String aesKey; // Getters and Setters... } ``` ##### Service 实现 通过继承自WxMpService并重载相应的方法来自定义业务逻辑处理流程。这里提供了一个简单的例子展示如何获取已发布图文素材列表: ```java @Service @Slf4j @RequiredArgsConstructor(onConstructor_ = {@Autowired}) public class WxMpServiceImpl implements InitializingBean { private final WxMpDefaultConfigImpl configStorage; private final WxMpMaterialService materialService; @Override public void afterPropertiesSet() throws Exception { this.configStorage.setAppid(appId); this.configStorage.setSecret(secret); this.materialService = new WxMpMaterialServiceImpl(); } /** * 查询永久素材总数及各型数量. */ public Integer getMaterialCount(){ try{ return materialService.getMaterialCount(); }catch (Exception e){ log.error("查询失败",e); throw new RuntimeException(e.getMessage()); } } } ``` 以上代码片段展示了如何利用WxJava库提供的工具和服务来进行具体的交互操作。 #### 5. 创建菜单结构 可以通过编写专门的服务端点或命令行工具来动态构建导航栏目。下面是一个简单示例——创建名为InitMenu的负责向服务器发送请求以建立基础菜单布局[^3]: ```java @RestController @RequestMapping("/menu") public class MenuController { @PostMapping("/init") public ResponseEntity<String> initMenu(@RequestBody Map<String, Object> body) { // 构建菜单数据体... boolean result = menuService.createMenu(menuData); if(result){ return ResponseEntity.ok().body("成功"); }else{ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } } ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Thinkingcao

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值