自从在 Wired 上读了 Clive Thompson的一篇叫 “How Twitter Creates a Social Sixth Sense,” 之后就对 Twitter 产生了很大的兴趣.再加上在下我工作的地方(ZK). 便决定要将 Twitter和 ZK mobile 结合在一起. 在开发的过程之前发现使用 ZK 开发真的很方便. 因为工作上有别的 assignment, 所以只好利用空余的时间Code. 在这里用到了两个很方便的 API 一个就是 ZK 另一个是 jTwitter.
jTwitter是由 Daniel Winterstein 开发的一个 Java 的 twitter interface. 有兴趣的朋友可以去 http://thinktankmaths.co.uk/2007/06/21/java-twitter/ 看看.
ZK 是一个很强大的 Java based server-side AJAX framework. 官网 http://zh.zkoss.org
我几乎花了不到半个小时就把 code 整好. 可是了如一般程序员的悲哀, 花了两个多小时把 Tomcat debug. 下面就是开发出来的截图:
因为是使用 ZK 的关系 twitter.mil 的 code 只有以下短短几行:
<?
xml version="1.0" encoding="UTF-8"
?>
< frame onCommand ="MilDevice.goHome(null)" visible ="true" >
< zscript >
<![CDATA[
import thinktank.twitter.*;
import org.zk.twitter.*;
Twitter myTw = new Twitter("USERNAME","PASSWORD");
TwitterFactory _tf = new TwitterFactory();
List link = _tf.myTwitterStatus(myTw);
]]>
</ zscript >
< zk forEach ="${link}" >
< label flow ="only" value ="[My name is ${each.userScreenName}]" />
< label flow ="only" value ="${each.text}" />
< label flow ="last" value ="Where: ${each.userLocation}" />
< label flow ="only" value ="- END -" />
</ zk >
< command label ="Home" type ="back" />
</ frame >
< frame onCommand ="MilDevice.goHome(null)" visible ="true" >
< zscript >
<![CDATA[
import thinktank.twitter.*;
import org.zk.twitter.*;
Twitter myTw = new Twitter("USERNAME","PASSWORD");
TwitterFactory _tf = new TwitterFactory();
List link = _tf.myTwitterStatus(myTw);
]]>
</ zscript >
< zk forEach ="${link}" >
< label flow ="only" value ="[My name is ${each.userScreenName}]" />
< label flow ="only" value ="${each.text}" />
< label flow ="last" value ="Where: ${each.userLocation}" />
< label flow ="only" value ="- END -" />
</ zk >
< command label ="Home" type ="back" />
</ frame >