wx-tools WxMessageMatcher接口实现例子
2023-03-22 17:19 更新
WxMessageMatcher(消息匹配器)接口用于一些简单的匹配,可以自定义匹配逻辑,如格式验证。匹配成功则继续往下执行,否则不允许通过。
需求:我想当用户发送文本消息:“我是谁”时,后台获取该用户的微信用户信息(昵称)并返回。
2.7.1 创建WhoAmIMatcher.java
用于匹配符合”我是谁“的消息。
public class WhoAmIMatcher implements WxMessageMatcher{
@Override
public boolean match(WxXmlMessage message) {
if(StringUtils.isNotEmpty(message.getContent())){
if(message.getContent().equals("我是谁")){
return true;
}
}
return false;
}
}
2.7.2 创建WhoAmIHandler.java
用于处理当匹配到“我是谁”的消息。
- 修改路由规则:(这时候已经把所有的爬虫都写完啦!所以路由规则这么多!)
router.rule().msgType(WxConsts.XML_MSG_TEXT).matcher(new WhoAmIMatcher()).handler(new WhoAmIHandler()).end()
.rule().event(WxConsts.EVT_CLICK).eventKey(MenuKey.HELP).handler(HelpDocHandler.getInstance()).next()
.rule().eventKey(MenuKey.HOT_SONG).handler(RankHandler.getInstance()).next()
.rule().eventKey(MenuKey.TOP_500).handler(RankHandler.getInstance()).next()
.rule().eventKey(MenuKey.NET_HOT_SONG).handler(RankHandler.getInstance()).next()
.rule().eventKey(MenuKey.HUAYU_SONG).handler(RankHandler.getInstance()).next()
.rule().eventKey(MenuKey.XINAO_SONG).handler(RankHandler.getInstance()).end();
2.7.3 运行,并测试
如图所示,输入”我是谁“的时候,返回了我微信的昵称。
2.7.4 小小总结一下
至此,我们已经尝试使用了路由器Router,规则Rule,匹配器Matcher,处理器Handler。
还有使用了IServer统一接口调用去获取用户信息。
IServer 接口是集成所有wx-tools已经实现的微信接口,统一调用入口。它的实现是WxService.java。想看实现源码的可以戳:这里
以上内容是否对您有帮助:
更多建议: