Lay.Li 发表于 2024-2-4 19:10:40

【对接方案】微信公众号自动回复消息

本帖最后由 Lay.Li 于 2024-2-5 09:01 编辑

各位格友大家好,相信大家都使用过微信公众号的这种功能,给微信公众号发送一条消息,然后就会收到微信公众号的回复。本文就给大家带来如何使用活字格,实现微信公众号的被动回复用户消息功能:itwn:


准备工作

工欲善其事,必先利其器,在开始正式配置之前,我们需要先进行一些准备工作

[*]活字格设计器
[*]活字格服务管理器
[*]可供外网访问的服务器
[*]微信公众号


活字格设计和服务管理器相信就不用过多介绍了,这里测试时使用的是最新版本9.0.103.0,大家可以在官网下载最新版本使用。可供外网访问的服务器需要大家自行去配置,可以自己搭建物理机,也可以购买活字格云,阿里云,腾讯云,华为云等云服务。这里使用的是活字格云,自带域名及服务器环境。


微信公众号的话我们需要去微信公众平台创建一个


因为这里我们实现这个功能调用的是微信公众平台的被动回复用户消息接口,所以这里不管是订阅号还是服务号,有没有做认证都可以使用

但要开启微信公众号的开发者模式


活字格对接
参考被动回复用户消息可知,当用户发送消息给公众号时,微信服务器会产生一个POST请求,发送给开发者在公众号服务器配置填写的接口中,开发者需要在接口的逻辑中返回特定XML结构,来对该消息进行响应、实现回复文本、图片、图文、语音、视频、音乐等消息。所以第一步我们需要再微信公众号中进行服务器配置

[*]接入服务器配置
在正式调用被动回复用户消息接口之前,我们需要先在微信处填写服务器配置,可以参考微信官方文档的接入指南
可以看到我们需要在后台中填写一个webapi的请求路径,然后这个api需要接受来自微信服务器的一个get请求,然后原样返回这个请求的echostr参数,即可完成接入。



使用活字格实现webapi的话,可以通过服务器命令去实现,可以参考

服务端命令作为WebAPI供三方调用和跨域问题解决
https://gcdn.grapecity.com.cn/showtopic-187508-1-1.html
(出处: 葡萄城开发者社区)

这里创建一个任何人可以访问的支持post/get请求的服务端命令即可(这个服务端命令便是之后答复微信消息的服务端命令)

添加4个参数,接受微信get请求的参数内容

这里按道理需要先去做一验证,校验这个请求是否是从微信服务器发出,如果是的话,再返回echostr参数的内容。但这里为了方便,我们可以直接返回echostr参数的内容,完成对接

如果大家有安全性考虑,可以参考微信的接入指南,去在命令中做验证,验证通过后再执行返回命令返回数据


命令写完之后,我们将应用发布到可供外网访问的服务器中即可,这里是发布到活字格云中。
然后微信服务器配置处url填写我们发布的<应用地址>/ServerCommand/<服务端命令名称>。
token随便填一个就行,EncodingAESKey是加密时使用的密钥,然后消息加解密方式这里选择明文模式,便于开发使用,如果大家有安全需求,可以选择加密的模式

(加密模式可以参考微信官方文档消息加解密说明,以及活字格中的加解密插件可以使用)
然后这里点击提交,可以看到提交成功的提示,然后服务器配置就成功了


接入服务器的工程文件给大家放到附件中,大家可以参考

[*]接收普通消息
接下来我们就可以实现微信公众号的自动回复消息了,那在回复消息之前我们肯定先得知道客户发送了什么内容,才好去判断要回复什么消息。获取微信公众号得到消息的内容,可以参考接收普通消息。
可以看到微信会发送一个post请求到咱们配置的接口中,然后请求体中会包含一个xml数据包,数据包中就是用户发给咱们公众号的消息

我们可以使用获取请求数据命令,就可以获取到微信推送的xml数据包



[*]被动回复用户消息
得到用户给我们的公众号发送的消息之后,我们便可以根据消息的内容去回复消息了,可以参考被动回复用户消息。在服务端命令中也返回一个xml的数据格式即可。


这里我们修改之前reply服务端命令,编写相关逻辑,当收到用户发送的相关消息之后,回复一下

然后发布应用到之前的服务器中,看一下实现效果

这样我们就可以实现简单的微信公众号消息自动回复了。
对接微信公众号号消息自动回复的内容就到这里了,附带一个小功能,这里用户关注微信公众号,也是发送了一个xml数据包到我们的服务端命令中

如果我们需要对用户的关注做回复的话,也可以在服务端命令中添加相关逻辑进行编辑


给大家附上微信公众号自动回复消息和关注后自动回复的demo。demo中实现了关注后的回复,和提问活字格是什么的回复,其他的功能大家可以扩展脑洞。比如结合刚出的这个文心一言插件,是不是就可以实现一个ai问答的公众号呢:itwn:

最后,demo中的命令,使用了豪~豪插件合集和对象与集合操作工具,感谢豪~豪大佬和宁老板开发的插件。这个对接方案也是和诗仙·1957这位格友讨论研究得出,也感谢这几位格友和其他格友们一直以来对于我们活字格的支持,在这里给大家拜个早年,祝大家新年快乐:i0tw2:




页: [1]
查看完整版本: 【对接方案】微信公众号自动回复消息