微信公众平台开发介绍(四)

上一节中,介绍了如何处理消息和回复消息。这一节我们主要介绍下如何基于规则进行回复。

为了尽可能简单,把规则直接写入到配置文件中,通过读写配置文件来获取规则。

本节结束的自动回复是基于文本消息进行触发的,其他的消息类型咱不考虑。

首先定义规则类,规则包含三个属性:
关键词;
规则类型,比如是精确匹配,模糊匹配,还是正则匹配等;
回复消息内容,规则匹配之后,回复的消息内容。

Rule具体属性如下:

我们的消息内容定义在MessageInfo中,两者是通过messageid来关联的。messageid是根据消息数量来自增长实现的。
MessageInfo主要属性如下:

msgType标识出调用哪种消息类型来发送回复消息。接口为responseMsg。content是具体的消息内容。

通过RuleConfig类来实现增加规则,写入配置文件,从配置文件中读取规则。

配置文件举例:

测试代码如下:

我们把规则写入到配置中后,就考虑集成到我们项目中。

自动回复时序图

时序图中,RuleController是自动回复的入口,在初始化,会注册所有的回复策略,在本例中,我们只有一个基于配置的回复策略。然后,每个回复策略去处理用户的发的消息。如果匹配了规则,就会发送相应的消息,否则交给TextMsg继续处理消息。

ConfigReplyTactic对外只有一个reply接口,接口返回bool用于表示,是否匹配了规则。回复策略从RuleConfig获取规则。但是,我们可以写的更灵活,从不同的规则源获取。
具体代码如下:

====================
代码参考:https://github.com/bruceding/MPDemo

此条目发表在MP平台分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。