官方公众号助手的消息送达一直是个拉跨的功能,不知道是登录公众号多,还是软件bug,比如A和B两个公众号同时收到消息,当登录A公众号时,仅仅会显示A公众号消息的角标,不会有任何横幅之类的提醒,B的公众号消息不会有任何提醒,只有打开软件的时候才会显示一下几条私信。

WechatIMG904.jpeg

这就不得不每天打开软件看一下,否则错过了七天有效期就回复不了,如果是三个公众号的话更是灾难,一直想通过他们官方api接口优化一下,现在得空搞定了,出奇的顺利。

邮件和钉钉通知

通知可以参考基于Vapor搭建GitHub的钉钉通知,通过创建钉钉机器人,来创建一个钉钉的通知即可。邮件通知的服务器开源库更是一抓一大把,基本只需要发送端账号和密码,接收端的账号和内容即可,所以这里不需要再贴代码。

实现思路

1、开启公众号服务器配置

在公众号的基本配置里面,有一个服务器配置,介绍的很清楚,就是收到消息会自动转发,所以就是开发一个接收消息并转发通知的功能即可

2、接收消息通知

公众号收到用户操作之后,会将内容转发到公众号服务器配置的url,可以参考下面三个官方文档直接开发服务器端代码:

  1. 接收普通消息
  2. 接收事件推送

其中接收普通消息就是接受用户的发送的消息,比如文本、图片、语音等,简单点如果不需要解析,接收到消息直接通知一条默认的提醒到邮件或者钉钉即可。如果需要高级点,就解析request.body里面的xml字符串,通过MsgType确定消息类型,通过Content读取内容。然后返回success字符串给微信,代表已经处理该信息

接收时间推送是系统事件,比如用户订阅、用户取消订阅、点击菜单等系统操作,所以这个可以参照接受普通消息的方式进行操作。

3、进阶功能

1、被动回复用户消息

文档地址:被动回复用户消息

这个功能的含义是接受到用户消息之后,可以通过该接口进行自动回复消息,就像上面接收普通消息提到的,直接返回success字符串给微信,代表已经处理该信息,你也可以返回对应格式的消息,同样代表处理了用户发送的消息,比如解析用户发送的content内容里面包含有客服人工帮助等字眼,就可以返回自定义的消息内容。当然如果仅仅是接受消息通知,这个功能可以忽略

2、自定义菜单

文档地址:自定义菜单

自定义菜单可以在微信公众号后台创建,但是如果你开启了公众号服务器配置,那么后台创建的自定义菜单会失效,这样只能通过API创建接口去创建自定义菜单。然而这个API创建的接口只有已认证公众号服务号才支持,如果是默认未认证的公众号,这个接口是无权限调用的,会报错。这个是鱼和熊掌不可兼得,期望以后微信会开放

而如果你有权限去通过API创建菜单的话,可以不用写代码,直接通过他的工具获得自己公众号的ACCESS_TOKEN,然后通过postman之类的工具,直接按照文档里的格式拼接好json数据,发送请求到https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN即可,反正菜单不会经常变更。

完工效果

这样开发完之后,可以在每个公众号都创建同样的接口,在接受的消息里面通过解析ToUserName可以获得接受方的微信,也可以通过不同的接口去配置给不同的公众号作区分。现在每条消息都可以收到钉钉通知啦,不会错过消息咯。

截屏2023-03-28 11.49.55.png

预览视频


☟☟可点击下方广告支持一下☟☟

最后修改:2023 年 10 月 19 日
请我喝杯可乐,请随意打赏: ☞已打赏列表