本教程是微信公众号添加后端配置 消息模版,和通过co-wechat-api调用公众号接口的开发阶段的配置。
1,需要下载内网穿透工具ngrok https://www.ngrok.cc/
下载安装教程可以参考 简书另一篇文章利用Sunny-Ngrok实现内网穿透 安装
此时已经完成一大半
2,然后配置公众号的测试号
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
3,然后配置公众号的服务器配置
成功之后
4,写代码测试
在middleware文件目录下新建一个wechat.js文件
代码,这一步是根据网上一位同学的代码,具体链接找不到了,不好意思
// app/middleware/wechat.js
const wechat = require('co-wechat')
module.exports = (options, app) => {
return wechat(options).middleware(async(message, ctx) => {
// TODO
const { MsgType, Content } = message
if (MsgType === 'text') {
let reply
switch (Content) {
case '12345':
reply = '上山打老虎'
break
case 'kiki':
reply = '是我媳妇'
break
default:
const msgs = [
'我媳妇老漂亮了',
'我媳妇会做饭',
'我媳妇会煎药',
'我媳妇吃的可多了',
'我媳妇可能睡了',
'我媳妇叫kiki',
'我媳妇会打太极拳',
'我媳妇总掉头发',
'我媳妇可爱哭了',
'我媳妇有点二'
]
const rand = Math.floor(Math.random() * msgs.length)
reply = msgs[rand]
}
return reply
}
return '欢迎光临'
})
}
然后在路由里面配置路由
// 微信
app.get('/wechat', wechat)
app.post('/wechat', wechat)
配置号之后,重启服务
刚才的测试账号,或者直接进入你自己的公众号,输入消息
输入12345
就可以出来上山大老虎了
第一个是我接的第三方图灵机器人
这一步完成了
然后配置,接口调用微信开放接口获取用户信息
首先配置路由
app.get('/weChatOAuth', app.controller.weChatOAuth.getOAuth)
app.get('/getFollowers', app.controller.weChatOAuth.getFollowers)
app.get('/getInfo', app.controller.weChatOAuth.getInfo)
在controller 新建一个weChatOAuth.js文件
'use strict'
const Controller = require('egg').Controller
const WechatAPI = require('co-wechat-api')
const weChatOAuth = {
appId: '你自己的',
secret: '你自己的',
token: 'webrabbit'
}
const tokenCache = {
access_token: '',
updateTime: Date.now(),
expires_in: 7200
}
const api = new WechatAPI(
weChatOAuth.appId,
weChatOAuth.secret,
)
class weChatOAuthController extends Controller {
async getOAuth() {
const { ctx } = this
const param = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${weChatOAuth.appId}&secret=${weChatOAuth.secret}`
const res = await ctx.curl(param, {
dataType: 'json'
})
Object.assign(tokenCache, res.data, {
updateTime: Date.now()
})
ctx.body = res.data
}
async getFollowers() {
const { ctx } = this
const url = `https://api.weixin.qq.com/cgi-bin/user/get?access_token=${tokenCache.access_token}`
const res = await ctx.curl(url, {
dataType: 'json'
})
ctx.session.openid = await res.data.data.openid[0]
ctx.body = res.data
}
async getInfo() {
const { ctx } = this
const res = await api.getUser({ openid: ctx.session.openid, lang: 'en' })
console.log(await api.getTags())
// res = await api.batchGetUsers(res.data.openid, 'zh_CN')
ctx.body = res
}
}
module.exports = weChatOAuthController
前两个接口是传统公众平台上的api
后面的getInfo 是用的co-wechat-api 插件掉的,更方便了
别忘了
npm install --save co-wechat-api
然后调用接口就会获取信息
当getInfo这样写时
async getInfo() {
const { ctx } = this
let res = await api.getFollowers() // 获取测试号的关注者的信息,刚才配置测试号,扫码关注的人
res = await api.batchGetUsers(res.data.openid, 'zh_CN')
ctx.body = res
}
现在就 完成了,后端调用开放平台公众号接口的配置
附上co-wechat-api文档地址 http://doxmate.cool/node-webot/co-wechat-api/api.html#api_api_user
如果对阁下有帮助,请点赞,关注,也不排除小小的大赏谢谢😂😂😂