微信小程序获取公众号文章列表及显示文章的示例代码


Posted in Javascript onMarch 10, 2020

微信小程序中如何打开公众号中的文章,步骤相对来说不麻烦。

1、公众号设置

小程序若要获取公众号的素材,公众号需要做一些设置。

1.1 绑定小程序

公众号需要绑定目标小程序,否则无法打开公众号的文章。
在公众号管理界面,点击小程序管理 --> 关联小程序

微信小程序获取公众号文章列表及显示文章的示例代码

输入小程序的AppID搜索,绑定即可。

微信小程序获取公众号文章列表及显示文章的示例代码

1.2 公众号开发者功能配置

(1) 在公众号管理界面,点击开发模块中的基本配置选项。

微信小程序获取公众号文章列表及显示文章的示例代码

(2) 开启开发者秘密(AppSecret),注意保存改秘密。
(3) 设置ip白名单,这个就是发起请求的机器的外网ip,假如是在自己电脑那就是自己电脑的外网ip,若部署到服务器那就是服务器的外网ip。

微信小程序获取公众号文章列表及显示文章的示例代码

2、获取文章信息的步骤

以下只是作为演示。

实际项目中在自己的服务端程序中获取,不要在小程序中直接获取,毕竟要使用到appid、appsecret这些保密性高的参数。

2.1 获取access_token

access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。API文档

private String getToken() throws MalformedURLException, IOException, ProtocolException {
		// access_token接口https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
		String path = " https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
		String appid = "公众号的开发者ID(AppID)";
		String secret = "公众号的开发者密码(AppSecret)";
		URL url = new URL(path+"&appid=" + appid + "&secret=" + secret);
		HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
		connection.setRequestMethod("GET");
		connection.connect();
		
		InputStream in = connection.getInputStream();
		byte[] b = new byte[100];
		int len = -1;
		StringBuffer sb = new StringBuffer();
		while((len = in.read(b)) != -1) {
			sb.append(new String(b,0,len));
		}
		
		System.out.println(sb.toString());
		in.close();
		return sb.toString();
	}

2.2 获取文章列表

API文档

private String getContentList(String token) throws IOException {
		String path = " https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
		URL url = new URL(path);
		HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
		connection.setRequestMethod("POST");
		connection.setDoOutput(true);
		connection.setRequestProperty("content-type", "application/json;charset=utf-8");
		connection.connect();
		// post发送的参数
		Map<String, Object> map = new HashMap<>();
		map.put("type", "news"); // news表示图文类型的素材,具体看API文档
		map.put("offset", 0);
		map.put("count", 1);
		// 将map转换成json字符串
		String paramBody = JSON.toJSONString(map); // 这里用了Alibaba的fastjson
		
		OutputStream out = connection.getOutputStream();
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
		bw.write(paramBody); // 向流中写入参数字符串
		bw.flush();
		
		InputStream in = connection.getInputStream();
		byte[] b = new byte[100];
		int len = -1;
		StringBuffer sb = new StringBuffer();
		while((len = in.read(b)) != -1) {
			sb.append(new String(b,0,len));
		}
		
		in.close();
		return sb.toString();
	}

测试:

@Test
	public void test() throws IOException {
		
		String result1 = getToken();
		Map<String,Object> token = (Map<String, Object>) JSON.parseObject(result1);
		String result2 = getContentList(token.get("access_token").toString());
		System.out.println(result2);
	}

微信小程序获取公众号文章列表及显示文章的示例代码

转换成json格式,参数说明查看上面的API文档

微信小程序获取公众号文章列表及显示文章的示例代码

微信小程序获取公众号文章列表及显示文章的示例代码

其中第二张图片中的url即为公众号文章的地址,获取到多少片tem项中就会有多少项,只要得到上面的结果那么在小程序中打开公众号文章已经成功一大半了。

最后在小程序中利用<web-view src="...."></web-view>组件打开即可,src中为文章的url地址。

微信小程序获取公众号文章列表及显示文章的示例代码

到此这篇关于微信小程序获取公众号文章列表及显示文章的示例代码的文章就介绍到这了,更多相关小程序获取公众号文章列表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
Javascript 去除数组的重复元素
May 04 Javascript
jquery一句话全选/取消全选
Mar 01 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
js获取客户端外网ip的简单实例
Nov 21 Javascript
js如何判断用户是在PC端和还是移动端访问
Apr 24 Javascript
js实现拖拽效果(构造函数)
Dec 14 Javascript
JS实现消息来时让网页标题闪动效果的方法
Apr 20 Javascript
Js自定义多选框效果的实例代码
Jul 05 Javascript
Angular之toDoList的实现代码示例
Dec 02 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
简单了解JavaScript sort方法
Nov 25 Javascript
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
jquery实现烟花效果(面向对象)
Mar 10 #jQuery
非常漂亮的js烟花效果
Mar 10 #Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 #Javascript
微信小程序实现搜索功能
Mar 10 #Javascript
原生JS实现烟花效果
Mar 10 #Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 #Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 #Javascript
You might like
打造计数器DIY三步曲(上)
2006/10/09 PHP
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
PHP-MySQL教程归纳总结
2008/06/07 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
JavaScript数组去重的方法总结【12种方法,号称史上最全】
2019/02/28 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
Python3.2模拟实现webqq登录
2016/02/15 Python
请不要重复犯我在学习Python和Linux系统上的错误
2016/12/12 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
Numpy的简单用法小结
2019/08/28 Python
使用 Python ssh 远程登陆服务器的最佳方案
2020/03/06 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
比驿:全球酒店比价网
2018/06/20 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
毕业生个人求职的自我评价
2013/10/28 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
企业授权委托书范本
2014/04/02 职场文书
设计师求职信模板
2014/05/06 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python