微信小程序获取微信公众号文章2
2018-01-19 18:06
232 查看
微信小程序获取微信公众号文章2
前面介绍了一篇微信小程序打开微信公众号中的文章实战教程,主要介绍了实现的具体原理,但是实际去做的时候,发现了更多的坑,所以这里再补充一下。原先的思路是不完整的
原先我们调用了微信的接口,获取了指向这篇文章的地址,以为使用web-view就可以让微信小程序指向那个地址,虽然微信设置了
业务域名这个限制,但是将其设置为我们要访问的地址即可,这是最开始的想法,但是这个想法是不完整的,原因很简单,微信业务域名的限制如下:
只能支持https
要将对应的验证文件放在对应域名服务器下的根目录中,即使用那个域名可以直接请求到
而微信公众号的文章域名第一不是
https的,第二,那个验证文件也不可能放在微信的服务器下,除非你有能力黑进去。所以按照我们原先的想法,直接使用
web-view访问的想法泡汤了。
但是也不是没有不能实现的办法,就是实现起来比较麻烦。
既然微信能访问的域名是限制死的,那么就让其访问我们自己的服务器,并在我们自己的服务器中获取文章后渲染出来。间接的访问那篇文章。
大体上的思路其实就是拿我们自己的服务器做了一个中转站,所以接下来的问题就是:
服务器如何获取文章
获取文章后如何显示
注意其中有一个坑,那就是调用微信公众号接口时其实是有返回文章内容的,可以看下面的例子:
其中的
content就是文章的内容,但是注意,这里的内容是不完整的!!!不完整的!!!不完整的!!!当你直接选择渲染着部分内容时,会出现样式的缺失问题,即部分内容显示错误的问题,可能是缺了一些文件的原因。注意不要跳进这个坑!
实战代码
我用的是thinkphp 3.2.3框架,配合上
curl进行文章获取。前端的代码基本不用怎么变的,就是将地址指向哦我们制定的域名即可。
// curl获取文件内容的代码 function curl_get_contents($durl) { if (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $durl); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_); curl_setopt($ch, CURLOPT_REFERER, _REFERER_); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); } else { $result = @file_get_contents($durl); } return $result; }
其中的
$durl就是微信公众号的文章地址了,获取内容后最直接的显示就是
// 控制器中 $url=""; // 当然,如果你想要更快的加载,而不是每一个人来请求一次你就再获取一次的话,建议你将内容缓存起来 $articleContent=curl_get_content($url); $this->assign('content',$articleContent); $this->display();
接着在模版中
<?php echo $content; ?>
好了,这样就可以了。其实思路上实现是简单的,就是微信对微信小程序的限制掐的很死,所以我们需要绕一点弯路而已。
相关文章推荐
- 微信公众号获取openId(微信小程序)
- 微信小程序--获取城市信息
- 小程序填坑之路(四):微信登录获取unionid
- 微信小程序(三)获取音乐url
- 巧用日志功能,进行微信h5支付开发,微信公众号开发,小程序支付开发错误调试——微信h5支付开发3
- 自己开发的网页在跳转至微信公众号文章后,点击微信的返回,无法返回原网页
- Java处理微信公众号文章图片不显示微信
- 微信小程序如何与java后台交互,获取json数据显示到页面,求大神指点
- 微信小程序图片等比例缩放 动态的获取图片的高度和宽度 动态的设置图片的高度和宽度
- 微信小程序开发优秀教程及文章合集第一期
- 微信小程序开发之大神之路最全微信小程序开发教程(视频+精品文章)
- 微信小程序支付中的prepay_id获取方法,以及微信支付统一签名算法闭坑
- Java微信开发(通过java程序获取用户个人信息)
- 微信小程序开发之获取openid及用户信息
- 【小程序】获取微信 自带的 收货地址获取和整理
- 微信小程序获取scope中权限管理
- 微信小程序获取openid返回appid missing的问题
- 如何获取微信小店小程序的AppID
- 使用nodejs获取微信小程序带参数二维码
- 微信小程序常见问题->上传文件后如何在后台(php)获取文件名解决方法