1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java上传图文消息_微信公众号开发之上传图文消息素材(十二)

java上传图文消息_微信公众号开发之上传图文消息素材(十二)

时间:2023-07-07 13:21:17

相关推荐

java上传图文消息_微信公众号开发之上传图文消息素材(十二)

群发消息太重要了,公众号管理员需要定期通过公众号群发一些消息,用户通过推送的消息可以定期了解公众号的最新信息。

群发图文消息的过程如下:

首先,预先将图文消息中需要用到的图片,使用上传图文消息内图片接口,上传成功并获得图片 URL;

上传图文消息素材,需要用到图片时,请使用上一步获取的图片 URL;

使用对用户标签的群发,或对 OpenID 列表的群发,将图文消息群发出去,群发时微信会进行原创校验,并返回群发操作结果;

在上述过程中,如果需要,还可以预览图文消息、查询群发状态,或删除已群发的消息等。

群发图片、文本等其他消息类型的过程如下:

如果是群发文本消息,则直接根据下面的接口说明进行群发即可;

如果是群发图片、视频等消息,则需要预先通过素材管理接口准备好 mediaID。

这一篇具体内容特别多,更多开发细节和注意事项请参考微信公众号开发文档【群发接口和原创校验】仔细阅读其他部分!!!

目录【这是微信开发文档提供的目录,我们只演示部分重要的模块!!!】

一、上传图文消息内的图片获取URL【订阅号与服务号认证后均可用】

请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下。

接口调用请求说明

http请求方式: POST https://api./cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN 调用示例(使用curl命令,用FORM表单方式上传一个图片): curl -F media=@test.jpg "https://api./cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN"

/**

上传图文消息内的图片获取URL

*/

public String uploadimg(String filePath) {

String accessToken = accessTokenUtil.getAccessToken();

if (accessToken != null) {

String url = URIConstant.UPLOAD_IMG_URL.replace("ACCESS_TOKEN", accessToken);

log.info("UPLOAD_IMG_URL:{}",url);

//设置请求体,注意是LinkedMultiValueMap

MultiValueMap data = new LinkedMultiValueMap<>();

//设置上传文件

FileSystemResource fileSystemResource = new FileSystemResource(filePath);

data.add("media", fileSystemResource);

//上传文件,设置请求头

HttpHeaders httpHeaders = new HttpHeaders();

httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);

httpHeaders.setContentLength(fileSystemResource.getFile().length());

HttpEntity> requestEntity = new HttpEntity>(data,

httpHeaders);

try{

//这里RestTemplate请求返回的字符串直接转换成JSONObject会报异常,后续深入找一下原因

// ResponseEntity resultEntity = restTemplate.exchange(url,

// HttpMethod.POST, requestEntity, JSONObject.class);

String resultJSON = restTemplate.postForObject(url, requestEntity, String.class);

log.info("上传返回的信息是:{}",resultJSON);

return resultJSON;

}catch (Exception e){

log.error(e.getMessage());

}

}

return null;

}

@ApiOperation(value = "上传图文消息内的图片获取URL")

@RequestMapping(value = "/uploadImg", method = RequestMethod.POST)

public Object uploadImg(String filePath) {

String result = newsUtil.uploadimg(filePath);

log.info("resut:{}",JSONObject.parseObject(result).toJSONString());

return result;

}

我们在swagger中测试这个上传图文素材图片接口,填写一个正确的图片路径

结果如下

二、上传图文消息素材【订阅号与服务号认证后均可用】

接口调用请求说明

http请求方式: POST https://api./cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN

POST数据说明

POST数据示例如下:

{

"articles": [

{

"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

"author":"xxx",

"title":"Happy Day",

"content_source_url":"",

"content":"content",

"digest":"digest",

"show_cover_pic":1,

"need_open_comment":1,

"only_fans_can_comment":1

},

{

"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",

"author":"xxx",

"title":"Happy Day",

"content_source_url":"",

"content":"content",

"digest":"digest",

"show_cover_pic":0,

"need_open_comment":1,

"only_fans_can_comment":1

}

]

}

限于文章篇幅有限,字段详细说明请自行参照开发文档

package com.xu.wemall.pojo.news;

import io.swagger.annotations.ApiModel;

import io.swagger.annotations.ApiModelProperty;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

@Data

@NoArgsConstructor

@AllArgsConstructor

@ApiModel(value = "新闻消息发送对象")

public class News {

@ApiModelProperty(value = "标题")

private String title;

@ApiModelProperty(value = "图文消息的封面图片素材id(必须是永久 media_ID)")

private String thumb_media_id;

@ApiModelProperty(value = "作者")

private String author;

@ApiModelProperty(value = "图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空")

private String digest;

@ApiModelProperty(value = "是否显示封面,0为false,即不显示,1为true,即显示")

private Integer show_cover_pic;

@ApiModelProperty(value = "图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS")

private String content;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。