wx-tools WxMessageMatcher接口实现例子

2023-03-22 17:19 更新

WxMessageMatcher(消息匹配器)接口用于一些简单的匹配,可以自定义匹配逻辑,如格式验证。匹配成功则继续往下执行,否则不允许通过。

需求:我想当用户发送文本消息:“我是谁”时,后台获取该用户的微信用户信息(昵称)并返回。

2.7.1 创建WhoAmIMatcher.java

用于匹配符合”我是谁“的消息。

  1. public class WhoAmIMatcher implements WxMessageMatcher{
  2. @Override
  3. public boolean match(WxXmlMessage message) {
  4. if(StringUtils.isNotEmpty(message.getContent())){
  5. if(message.getContent().equals("我是谁")){
  6. return true;
  7. }
  8. }
  9. return false;
  10. }
  11. }

2.7.2 创建WhoAmIHandler.java

用于处理当匹配到“我是谁”的消息。

  • 修改路由规则:(这时候已经把所有的爬虫都写完啦!所以路由规则这么多!

  1. router.rule().msgType(WxConsts.XML_MSG_TEXT).matcher(new WhoAmIMatcher()).handler(new WhoAmIHandler()).end()
  2. .rule().event(WxConsts.EVT_CLICK).eventKey(MenuKey.HELP).handler(HelpDocHandler.getInstance()).next()
  3. .rule().eventKey(MenuKey.HOT_SONG).handler(RankHandler.getInstance()).next()
  4. .rule().eventKey(MenuKey.TOP_500).handler(RankHandler.getInstance()).next()
  5. .rule().eventKey(MenuKey.NET_HOT_SONG).handler(RankHandler.getInstance()).next()
  6. .rule().eventKey(MenuKey.HUAYU_SONG).handler(RankHandler.getInstance()).next()
  7. .rule().eventKey(MenuKey.XINAO_SONG).handler(RankHandler.getInstance()).end();

2.7.3 运行,并测试

如图所示,输入”我是谁“的时候,返回了我微信的昵称。

WhoAmI

2.7.4 小小总结一下

至此,我们已经尝试使用了路由器Router,规则Rule,匹配器Matcher,处理器Handler。

还有使用了IServer统一接口调用去获取用户信息。

IServer 接口是集成所有wx-tools已经实现的微信接口,统一调用入口。它的实现是WxService.java。想看实现源码的可以戳:这里

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号