shindig是google的一个opensocial容器的参考实现。google高调发布opensocial以后大家纷纷在宣布支持opensocial,可是真正要找个支持opensocial的容器一点也不容易,orkut的sandbox限制很多,myspace中国也只支持flash的方式,真正要玩opensocial,还是自己搭一个环境算了。
shindig现在还不能简单的安装运行(http://incubator.apache.org/shindig/#tab-download),要做一些手工活:
按照 http://incubator.apache.org/shindig/#tab-building 的指引,
- 下载安装JDK,设置好JAVA_HOME和PATH环境变量
- 下载安装subversion客户端(我用了TortoiseSVN)
- 下载解压Maven(在windows上用,我用了zip版本),一个类似ant的东东,用于编译shindig。设置好M2_HOME(指向Maven的解压目录),M2(指向bin子目录)和PATH环境变量(加进bin子目录的路径)。
- 新建shindig目录,用TortoiseSVN update下来shindig工程(http://svn.apache.org/repos/asf/incubator/shindig/trunk)
在shindig/java/gadgets目录下面运行mvn package编译。由于依赖的jar都要从网上下载,等了漫长的一个多小时,最后在shindig\java\gadgets\target目录下得到一个gadgets.war,大约2M左右大小。
拿到war就好办了,随便找一个web容器给它运行。首选的当然是开源、绿色、轻巧可爱的tomcat了。下载下来解压,运行startup.bat,就跑起来了。访问http://localhost:8080/看到欢迎页面,从Administration-->Tomcat Manager进入。衰,要登陆。在tomcat/conf下面找到tomcat-users.xml,加两行
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>
重启tomcat,用tomcat/tomcat进入Administration-->Tomcat Manager
找到 WAR file to deploy-->Select WAR file to upload ,选中刚才编译好的gadgets.war上传。后在Applications列表中看到/gadgets就好了。
http://localhost:8080/gadgets下面没有默认页面,只能直接访问 samplecontainer 页面 http://localhost:8080/gadgets/files/samplecontainer/samplecontainer.html
第一个输入框是gadget的xml地址,也就是所谓的OpensocialAPP了。第二个输入框指向的xml里面描述了一些模拟的用户信息,主要提供了people、personAppData、activities这些基本的APP信息。
下面蓝色框是一个iframe,里面就是这个APP的展示区域了。
看来google现在还想让大家用iframe来作web application,失望一下。要是第三方可以像igoogle里面的gmail模块一样直接inline嵌入到页面中间就好了。iframe还是很多问题的,速度问题,页面负担,还有
浏览器bug。