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 运行,并测试

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

WhoAmI

2.7.4 小小总结一下

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

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

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

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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号