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

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

浏览量:1682 时间: 来源:trouble-i-am-in

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

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

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎