100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java微信新增永久素材_微信公众号开发之新增永久图文素材(十)

java微信新增永久素材_微信公众号开发之新增永久图文素材(十)

时间:2020-05-12 13:36:13

相关推荐

java微信新增永久素材_微信公众号开发之新增永久图文素材(十)

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

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

接口调用请求说明

http请求方式: POST,https协议 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"

参数说明

参数是否必须说明

access_token

调用接口凭证

media

form-data中媒体文件标识,有filename、filelength、content-type等信息

返回说明正常情况下的返回结果为:

{

"url": "/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYs CNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"

}

其中url就是上传图片的URL,可放置图文消息中使用。

新建一个NewsUtil类,在这里创建一个上传图文素材图片的方法

/**

上传图文消息内的图片获取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;

}

照例,我们在swagger中新建一个方法测试一下我们的方法

@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协议 https://api./cgi-bin/material/add_news?access_token=ACCESS_TOKEN

调用示例

{

"articles": [{

"title": TITLE,

"thumb_media_id": THUMB_MEDIA_ID,

"author": AUTHOR,

"digest": DIGEST,

"show_cover_pic": SHOW_COVER_PIC(0 / 1),

"content": CONTENT,

"content_source_url": CONTENT_SOURCE_URL,

"need_open_comment":1,

"only_fans_can_comment":1

},

//若新增的是多图文素材,则此处应还有几段articles结构

]

}

参数说明

参数是否必须说明

title

标题

thumb_media_id

图文消息的封面图片素材id(必须是永久mediaID)

author

作者

digest

图文消息的摘要,仅有单图文消息才有摘要,多图文此处为空。如果本字段为没有填写,则默认抓取正文前64个字。

show_cover_pic

是否显示封面,0为false,即不显示,1为true,即显示

content

图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M,且此处会去除JS,涉及图片url必须来源 "上传图文消息内的图片获取URL"接口获取。外部图片url将被过滤。

content_source_url

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