Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/linux-china/weixin-robot-java

微信公共平台机器人Java SDK
https://github.com/linux-china/weixin-robot-java

Last synced: 7 days ago
JSON representation

微信公共平台机器人Java SDK

Awesome Lists containing this project

README

        

Weixin robot Java
========================================
微信公共平台自动回复机器人的Java SDK,你可以使用SDK简单快速构建微信机器人。
微信Robot Java借鉴了url rewrite的思想,url rewrite是根据url进行路由,而微信Robot则是根据消息类型和内容进行路由。
整理的流程如下:

* WexinRobotServlet负责认证和微信消息接收
* 接收后进行XML解析,构建出 WeixinMessage对象,并注入到request的attribute中,名字为wxMsg
* 根据配置的路由参数,对微信消息进行匹配
* 根据匹配的结果进行URL路由转发
* 最后由处理的组件完成xml格式反馈的输出

### 如何使用
首先我们要在pom.xml中添加:


org.mvnsearch.wx
wx-robot-sdk
1.0.0

接下来就是修改web.xml添加Servlet负责接收微信公共平台发过来的消息:


WexinRobotServlet
org.mvnsearch.wx.servlet.WexinRobotServlet

token
yourTokenHere


confFile
/WEB-INF/weixin-router.xml



WexinRobotServlet
/servlet/weixinrobot

其中token是指你在微信公共平台上的token,这里和其一致。接下来我们还需要设置servlet mapping,添加url-pattern,
然后将最终的url,如上述配置的 http://www.foobar.com/servlet/weixinrobot 作为微信公共平台接口配置中的URL。
接下来是在WEB-INF目录下创建一个weixin-router.xml的文件,完成信息的路由。

接收到的消息如何路由到指定的组件处理,如Struts的Controller等,这里我们需要创建一个router文件,这里还是根据
消息的类型和内容进行转发,内容如下:


text
[\d]{11}
/weixin2.wx


text
/weixin.wx

上述的例子就是如果内容是手机号,交与/weixin2.wx这个URL处理。当然我们设置了一个默认的选项,如果text类型的消息没有任何
匹配,则由/weixin.wx处理。

收到微信消息后,要给出消息反馈。微信公共平台的消息反馈是一个xml格式的数据,在Java的系统中,我们使用jspx输出接口,样例如下:



${wxMsg.sender}
${wxMsg.receiver}
${wxMsg.createdTime}
text
${content}
0

### 编码

* 在代码中获取解析好的微信消息 WeixinMessage wxMsg = (WeixinMessage)request.getAttribute("wxMsg");

### FAQ

* 如何调试: 由于微信服务器只能通知互联网IP和80端口,开发时你可以在你家中的ADSL拨号路由器上设置一下80转发,
然后微信服务器的消息通知就可以路由到你的笔记本上,方便你测试和开发。查看你的互联网Ip请访问 http://ip.mvnsearch.org
* 参考样例清访问robot-demo Maven module