300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序获取微信公众号文章2

微信小程序获取微信公众号文章2

时间:2020-01-24 11:01:43

相关推荐

微信小程序获取微信公众号文章2

微信小程序获取微信公众号文章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();

接着在模版中

<?phpecho $content;?>

好了,这样就可以了。其实思路上实现是简单的,就是微信对微信小程序的限制掐的很死,所以我们需要绕一点弯路而已。

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