wx-tools WxMessageMatcher接口實(shí)現(xiàn)例子

2023-03-22 17:19 更新

WxMessageMatcher(消息匹配器)接口用于一些簡(jiǎn)單的匹配,可以自定義匹配邏輯,如格式驗(yàn)證。匹配成功則繼續(xù)往下執(zhí)行,否則不允許通過(guò)。

需求:我想當(dāng)用戶發(fā)送文本消息:“我是誰(shuí)”時(shí),后臺(tái)獲取該用戶的微信用戶信息(昵稱)并返回。

2.7.1 創(chuàng)建WhoAmIMatcher.java

用于匹配符合”我是誰(shuí)“的消息。

public class WhoAmIMatcher implements WxMessageMatcher{


    @Override
    public boolean match(WxXmlMessage message) {
        if(StringUtils.isNotEmpty(message.getContent())){
            if(message.getContent().equals("我是誰(shuí)")){
                return true;
            }
        }
        return false;
    }


}

2.7.2 創(chuàng)建WhoAmIHandler.java

用于處理當(dāng)匹配到“我是誰(shuí)”的消息。

  • 修改路由規(guī)則:(這時(shí)候已經(jīng)把所有的爬蟲都寫完啦!所以路由規(guī)則這么多!

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 運(yùn)行,并測(cè)試

如圖所示,輸入”我是誰(shuí)“的時(shí)候,返回了我微信的昵稱。

WhoAmI

2.7.4 小小總結(jié)一下

至此,我們已經(jīng)嘗試使用了路由器Router,規(guī)則Rule,匹配器Matcher,處理器Handler。

還有使用了IServer統(tǒng)一接口調(diào)用去獲取用戶信息。

IServer 接口是集成所有wx-tools已經(jīng)實(shí)現(xiàn)的微信接口,統(tǒng)一調(diào)用入口。它的實(shí)現(xiàn)是WxService.java。想看實(shí)現(xiàn)源碼的可以戳:這里

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)