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

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

接口调用请求说明

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

参数说明

参数是否必须说明

access_token

调用接口凭证

media

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

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

{

"url": "http://mmbiz.qpic.cn/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.weixin.qq.com/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

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

  1. 微信公众号开发-----实现模板、图文、文本、音乐、图片推送

    本篇文章实现模板.图文.文本.音乐.图片推送,前提是已经搭建了微信开发环境.读完本文后,实现的主要效果如下 在测试账号中配置模板 登录测试公众号/正式公众号(认证后的服务号),测试公众号:模板消息接口 ...

  2. 微信公众号开发之新增临时素材(八)

    一.新增临时素材 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的.素材管理接口对所有认证的 ...

  3. 微信答题怎么做_分享公众号答题制作步骤

    小编今天要和大家分享的是订阅号怎么做答题活动,有的小伙伴会问订阅号可以做答题活动吗,答案是可以的,那么我们接下来分享下微信答题小程序怎么做. 微信答题系统的题目添加,在题目列表进行添加题目,可以一次性 ...

  4. 微信公众号开发--新增临时素材

    在近日的微信公众号开发中,遇到临时素材的提交 遇到错误码45001 显示媒体文件不存在,返回代码打印了文件路径,发现路径没有任何问题,继续重来还是45001. 过了会弹出api访问超过当日次数,更郁闷 ...

  5. Node微信公众号开发 - 定时获取最新文章同步到MySQL数据库

    0.介绍 本文源码:https://github.com/Jameswain/... ​ ​ ​ 最近有一个需求:把5个公众号的所有文章定时同步到小程序的数据库里,10分钟同步一次.实现这个需求当时我 ...

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

    群发消息太重要了,公众号管理员需要定期通过公众号群发一些消息,用户通过推送的消息可以定期了解公众号的最新信息. 群发图文消息的过程如下: 首先,预先将图文消息中需要用到的图片,使用上传图文消息内图片接 ...

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

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

  8. Java 微信公众号开发_学习笔记

    一.课程介绍 本套课程的学习内容,开发语言 微信公众号介绍,申请以及后台设置详解 编辑模式下的消息回复,菜单建立,素材管理等 开发前的环境搭建以及工具准备 开发者模式的切换.以及消息的接收与响应 百度 ...

  9. 慕课网_《Java微信公众号开发进阶》学习总结

    时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:http://img.mukewang.com/down/... 学习 ...

  10. 微信公众号开发java流程_微信公众号开发教程java 编程语言的特点及选择

    微信公众号开发教程java 编程语言的特点及选择 微信公众号为用户提供了相关的工具,来对微信公众号进行一个简单的开发.但是如果想实现一些复杂的功能,其实还是要借助于一些编程语言的使用.所以要了解,在微 ...

最新文章

  1. IE的box模型显示bug
  2. 从volatile解读ConcurrentHashMap(jdk1.6.0)无锁读
  3. freeradius 3.0 mysql_secfree
  4. Jmeter使用笔记之意料之外的
  5. (转)公钥,私钥和数字签名这样最好理解
  6. Django集合Ueditor
  7. 不规则图形数格子的方法_【微课堂】人教版五年级数学(上)6.5不规则图形的面积图文精讲+教学视频+同步练习...
  8. Linux编译安装nginx1.4.7版本
  9. 如何拯救美团的“中年危机”?
  10. SQL case when then end根据某列数据内容在新列显示自定义内容
  11. JavaScript的Math对象使用(1)
  12. Android内核开发:系统分区与镜像文件的烧写
  13. 计算机二级java邓伦单_2010年3月计算机等级考试二级Java笔试试题(文字版)
  14. win2008r2 惠普g160鼠标_惠普M260鼠标驱动简单体验
  15. html网页综合项目实战
  16. oracle imp命令路径,在oracle中关于imp命令的详细讲解
  17. AutoCAD.Net 实现创建wipeout遮罩实体
  18. “熊猫烧香”主犯:毒王?黑客英雄?
  19. sql 查询之排除某种特定的数据
  20. 【数学建模】2019A题 高压油管的压力控制器(附带优秀论文资源文档下载)

热门文章

  1. 功能安全专题之端到端(E2E) 的通信保护
  2. 七大行星排列图片_太阳系九大行星排列顺序(口诀:水金地,火木土,天海)...
  3. 【AI视野·今日CV 计算机视觉论文速览 第169期】Fri, 22 Nov 2019
  4. 条码打印软件如何批量打印快递单
  5. el-descriptions
  6. Ubuntu中安装VirtualBox
  7. deficit记忆_背单词:不要让“捷径”欺骗你的记忆
  8. 前端性能优化实践:让视频加载也“懒”一点
  9. 读书笔记之《随机漫步的傻瓜》
  10. 湿敏电阻HR202L使用记录