将近一个月未更新文章,在这一个月中学习开发了自己的微信公众号,当然现阶段该公众号功能仍很简陋,我会逐渐将其完善。
实现思路参考 Bu偷腥的mao 的几篇教程(原教程链接在文章底部),自己在教程基础代码上有所修改。
目前实现的功能有:
- 微信公众号接入
- 自定义回复
- 回复 n 推送最新文章
- 其他则推送操作提示
- 关注成功 推送欢迎图片
- 自定义菜单
公众号的种类及区别
公众号分为 服务号 和 订阅号 两种,以下是官方对于两种形式的介绍说明:
-
订阅号:为媒体和个人提供一种新的信息传播方式,主要功能是在微信侧给用户传达资讯;(功能类似报纸杂志,提供新闻信息或娱乐趣事)
适用人群:个人、媒体、企业、政府或其他组织。
-
服务号:为企业和组织提供更强大的业务服务与用户管理能力,主要偏向服务类交互(功能类似12315,114,银行,提供绑定信息,服务交互的);
适用人群:媒体、企业、政府或其他组织。
-
两者区别:接口权限区别说明如图所示
在这里不多赘述公众号的注册流程,以下为官方各渠道注册流程文档:
接入公众号平台
由于我们是本地开发,所以需要在正式前利用 【工具】将本地 ip 暴露到公网,【工具】将分配给我们一个与该 ip 绑定的域名,之后将提交给 微信公众平台测试账号 。这里要注意的是 【工具】生成的免费域名由于被微信屏蔽,所以无法在正式发布时使用!!!
下载【工具】,注册并登录
点击右下角加号,外网域名为【工具】提供给我们的公网域名,内网主机填写本机 ip ,端口填写开发设置的端口即可。可以通过访问该对公域名(或点击诊断图标)测试配置是否成功。
接入公众号平台
这一步主要是用来验证消息的确来自微信服务器。
我们需要发送 GET 请求到【工具】免费域名地址 URL 上,之后对服务器返回来的参数进行加密处理,匹配加密数据是否与服务器数据相同,若相同则表示信息来自微信服务器。
微信公众平台测试账号 平台会生成一个用于开发的 appID 、appsecret
var express = require('express') // 引入express模块
var app = express()
var sha1 = require('sha1') // sha1 为第三方加密模块
var config = {
'appID': 'appID',
'appsecret': 'appsecret',
'token': '自定义token'
}
app.get('/', (req, res, next) => {
// 获取微信服务器发送的数据
var signature = req.query.signature,
timestamp = req.query.timestamp,
nonce = req.query.nonce,
echostr = req.query.echostr
// token、timestamp、nonce三个参数进行字典序排序
var arr = [config.token, timestamp, nonce].sort().join('')
// sha1加密
var result = sha1(arr)
if(result === signature){
res.send('通信来自微信服务器')
}else{
res.send('通信不是来自微信服务器')
}
}
// 监听端口
app.listen('自定义端口')
保存文件后运行,在 微信公众平台测试账号 接口配置信息处填入【工具】提供的免费域名,保存即可验证接口是否正确。
到此为止,我们与微信公众平台通信成功后就可以愉快的进行其他功能的开发了。
文章已同步我的个人博客:《Node微信公众号开发 接入公众号》
资料参考:
- 由于【工具】被平台屏蔽导致无法顺利发布文章,还请前往我的博客了解
- [微信公众号官方文档]
- [微信公众平台接口调试工具]
- [微信公众平台测试账号]
- [Node开发微信公众号(1)——微信公众号接入]
- [Node开发微信公众号(2)——微信回复]
- [Node开发微信公众号(3)——微信菜单]
- [Node开发微信公众号(4)——素材上传]
本文由博客一文多发平台 OpenWrite 发布!