最近沉迷于使用Gtalk,因为他可以上推,因此还加了很多机器人,能对各大微博进行实时关注,发围脖。但是不是每个机器人都能满足我的需求,要同时是操作几个机器人是很麻烦的事情,最后我就想自己建一个机器人。
GAE不但增加了JAVA的支持,还增加了JAVA对XMPP的支持。这对建立一个机器人有极大的帮助。
这是个鹦鹉学舌的GAE APP。
public class WindTwitterBotServlet extends HttpServlet {
  private static final XMPPService xmppService =
    XMPPServiceFactory.getXMPPService();
  
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {
    doPost(req, resp);  
  }
  
  public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException{
//从访问中拿到Gtalk信息
    Message message = xmppService.parseMessage(request);
    if(message == null)
    {
      return;
    }
    String messageBody = message.getBody().trim();
    Message reply = new MessageBuilder()
      .withRecipientJids(message.getFromJid())
      .withMessageType(MessageType.NORMAL)
      .withBody(messageBody)
      .build();
    xmppService.sendMessage(reply);
  }
}
还得设置这个servlet的地址为GAE的指定地址才能接收到从GTALK中来的信息。
<servlet>
        <servlet-name>xmppreceiver</servlet-name>
        <servlet-class>XMPPReceiverServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>xmppreceiver</servlet-name>
        <url-pattern>/_ah/xmpp/message/chat/</url-pattern>
    </servlet-mapping>
这样就完成了一个简单的机器人