尝试开发微信公众号消息推送功能并且和小程序关联

by Liu Yue/2019-11-10

    之前写了几篇关于微信小程序的开发实践,总的来说没啥难度,感兴趣的请移步:使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境,这一次我们来尝试开发一下微信公众号,那么公众号和小程序到底有什么区别呢?

    首先定位不同

    公众号服务于营销与信息传递,小程序面向产品与服务。公众号主要用于信息的传递实现人与信息的连接,借助H5 能够实现简单的交互,主要以营销和信息传递为主简单的服务为辅,而小程序从功能上与公众号有严格区分(不支持关注、消息推送等营销手段),一方面使得产品与服务不至于淹没在公众号营销信息中,另一方支持公众号、朋友圈、群与小程序之间的互动与导流,使得开发者专心做产品与服务,从而为微信带来大量长尾服务叠加微信自身重度服务打造从社交到信息连接再到服务的生态圈。

    再者实现技术有区别

    公众号基于H5,小程序基于微信自身开发环境与开发语言。小程序是微信内的云端应用(所以无需安装),不是原生App,通过WebSocket 双向通信(保证无需刷新即时通信)、本地缓存(图片与UI 本地缓存降低与服务器交互延时)以及微信底层技术优化实现了接近原生APP 的体验。

    首先,我们还是去https://mp.weixin.qq.com/来注册一个公众号,注册时可以选择订阅号和服务号,这两者都是公众号,可以理解为服务号的功能更强大,但是需要企业级的资质才可以。

        注册成功后,我们可以在公众号设置中设置一些公众号的基本信息

    

    只要用户关注了公众号,就可以看到一些关于公众号的信息了,这里我们来实现一个小功能,就是给关注公众号的粉丝来推送消息。

    这个功能在微信官方被称为模板消息推送,官方文档:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html

    我们从这里使用沙盒环境来全程模拟线上测试,首先进入微信的官方沙盒环境测试地址:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

    在这里我们获取到了测试的appid和sceret

        按照说明文档,我们首先要获取token,通过微信官方的接口调试工具就可以在线获取到token,非常方便:https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3%20/token

            填入刚刚的appid和appsecret,点击检查问题,就可以获取到你的token,需要注意的是,此token是有时间限制的,超过两小时需要再次请求接口获取

        将token保存好,此时再回到沙盒环境网址,关注测试公众号

        

        然后创建一个新增一个测试模板

        


    此时,我们手里已经掌握了模板id,用户的微信号id,这样就可以给关注的用户推送消息啦,聪明如你一定注意到了消息内容有一个{{ first.DATA}} ,这个其实就是一个类似通配符的东西,它可以将消息作为变量发送,这样你就能随时更改消息内容了。

    现在我们来利用postman,给关注的用户实时推送一条消息

    推送消息的接口地址为:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=token
    你需要将token替换为之前通过接口获取的token

    

    根据接口文档,需要传入的参数有token,用户id,模板id,以及跳转网址和data,需要注意一点,发送的参数格式为json,别忘了请求方式为post

    请求成功后,我们在公众号里就能看到这条消息

    

    总体来说模板消息在公众号的生态里是非常优秀的一种消息推送形式:用户查看便捷,信息传递直接:不用像图文消息那样跳到网页查看;和高级群发一样,用户关注即能收到,没有其他发送前提;日调用上限是10万次,且能根据粉丝的量级得到进一步提升;粉丝点击后直达小程序/链接,引流效果好。

    整个过程非常简单,当然了,这只是测试的沙盒环境,如果想应用到正式,必须有自己的独立服务器和域名才能使用

    模板消息除了单发之外,当然也可以通过多次调用接口的形式实现群发效果,让公众号发给需要接收消息的部分粉丝。

    最后,我们可以关联微信小程序,这样用户点击消息后就可以直接跳转小程序的页面了

    

    附上公众号二维码: