最近沉迷于使用Gtalk,因为他可以上推,因此还加了很多机器人,能对各大微博进行实时关注,发围脖。但是不是每个机器人都能满足我的需求,要同时是操作几个机器人是很麻烦的事情,最后我就想自己建一个机器人。还得设置这个servlet的地址为GAE的指定地址才能接收到从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);
}
}
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>
<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>
<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>
转载于:https://blog.51cto.com/modrich/358627