Skip to content

微信服务端开发

这里的笔记比较杂

起服务,例如用 Koa 起个服务,后端请求微信提供的方法...

什么是 access_token

access_token 是公众号的全局唯一票据,公众号调用各接口时都需使用 access_token。有效期为 2 小时,且一天最多只能调用 2000 次

这样的话,access_token 必须缓存起来(不然它只有 2000 次调用)

我们定时每 1 个小时刷新一次,一天也就调用 24 次,搓搓有余了

思路是这样,调用 XX 方法,如果有缓存,用缓存的;如果没有,去调用接口

做法:每一个小时去调用一次接口

什么是 jsapi_ticket

jsapi_ticket 是公众号用于调用微信 JS 接口的临时票据。一般为 2 小时,通过 access_token 获取。

无论是 access_token 还是 jsapi_ticket ,都需要进行缓存

如何监听消息管理?

如何监听自定义菜单的点击事件?

1597714990796

需要配置“接口配置信息”,这个配通了,就是说,微信会发消息给你

但是因为翻墙的原因,本机的 ip 获取不到,只能通过内网穿透来实现,找了 natappfree 来实现

使用 koa-xml-body 来解析 xml 格式文件

但是需要注意的是,app.use(xmlParser()); 要放在 app.use(bodyParser()); 前面

内网穿透

为了在本机调试,需要内网穿透,本来用 natapp,但是偶尔会连接不上,又查了查,找到最好的内网穿透的工具:ngrok

关于 media_id

想在公众号里回复图片,视频或者图文,就要有 media_id。找了半圈,新增临时素材能获取 media_id。有效期是 3 天

坑点:axios 请求怎么样也上传不了照片

这里的常见错误:公众号开发 调用【上传图文消息内的图片获取 URL】接口时,返回 412 错误?

坑点 2:微信测试号不能上传 永久 media_id,但是文档没写

永久素材可以一般要在有素材内容的公众号里直接拿过来

微信公众号上传的永久素材得到的 media_id 无效

如何让在 koa 中使用 redis ,让 redis 同步

加入一个库 async-redis

让它支持异步

定时功能

定时 node-schedule 接入,每一小时定时获取 access_token