花了一天多的时间写了一个可能是“符合规范”的豆瓣秀 OpenSocial Gadget。然后零零碎碎合起来花了大概两天的时间试着把它提交到各个号称支持OpenSocial的容器里,均不成功,目睹怪现象若干。。。陈列于此:
1. iGoogle:iGoogle提供了一个可用于调试OpenSocial的Sandbox,这个Sandbox是Google在各次宣传OpenSocial活动中展示的工具。不过当本猫在iGoogle Sandbox中调试好gadget,然后提交到iGoogle的App Directory中安装之后发现,iGoogle非Sandbox的普通用户使用的版本不支持OpenSocial,囧。。。(今天参加Google Devfest的时候又试了一下,结论上Sandbox也不支持OpenSocial了,而今天Google自己的演示也全是Orkut了)
2.Orkut:Google的当家SNS。另一个Google在活动中展示的Sandbox。首先Orkut中文版里提交gadget的文件总是显示“抱歉,XXX错误”。。。切换到Orkut英文版,暂时可以用了。不过gadget的标题里的中文字符,会被莫名其妙的Url Encode。。。不管怎么说,勉强可以用吧,调试完毕,欣欣然然submit。显示“审核”,等了整整一天(时差,时差问题),一封拒信打回来,说只接收够“production”的gadget。。。老大们好歹给点线索哪里不够吧。。。自己猜了半天,东改改西改改。然后再去提交,提示“这个url不能提交,因为已经提交过了”。。。囧,暂时放弃中。。。(p.s. Orkut的opensocial实现里有bug,一些时候会出现取不到UserPrefs的问题,不过和之下的比这不算什么。。。)
3. Myspace中国:好大一个SNS,好多用户,然后基本上认为开发人员都是超人。。。首先花了几分钟没在页面上找到进入developer页面的链接,结果只能google “myspace developer”(不愧和google是合作关系,帮他增加了2个pv)。。。进入页面创建一个gadget,提示我输入一个email地址,输了自己的email,提示“已经被用了”。。。我靠,仔细看提示,要是输入不能和任何注册用户和提交Gadget重复的唯一标示gadget的email地址。。。What the hell is that… 帮助“合作伙伴”增加gmail注册数?通过给gmail加"."的方式通过。。。下一步上传gadget图标,提示"16×16",我上传了一个64X64的,提示“尺寸不对”。。。ok,开ps,我是前端、后端、技术、美工全能猫。。。最后终于可以开始弄代码了,把在orkut下测试过的代码粘过去,运行。想设置自己的豆瓣用户名,找不到设置的地方,囧。。。仔细找了半天,未果,上“合作伙伴”搜,发现原来Myspace的opensocial根本不支持Google gadget那一堆xml标签——有一个大哥说得很直白,“MySpace has a different development pattern”。。。
4. Hi5:另一个好大的SNS,然后被盾了。。。搜了,偷偷发现,原来sandbox的链接还可以用(呀,是不是又犯法了)。不过上去一试,毫无疑问的也不支持gadget的标签。。。
5. YiQi:填完表单,点提交按钮。我点呀点,我点呀点,它就是没反应。。。看代码,按钮onclick了一个叫applyapp之类的函数,然后页面load的js里没有这个函数。。。
6. 51:原来5不仅可以1ml,还可以1OpenSocial。ok,创建,又开始填表。第一个就让我填“真实姓名”,而写明了不能改,以后要想分钱(51B,啊,不是,是51币)全靠这名字了。。。填了,接着,让我填身份证号,囧。。。嘿咻嘿咻终于快填完了,忽然出现一个“添加应用通知地址”,后面跟着一个链接“详细说明”。没禁住诱惑,偷偷一点,页面跳转,再后退,强制不缓存,什么都没了。。。T_T。。。最后,弄好之后,毫无疑问的,显然也不支持gadget规范里的标签。
好了,上面是一大堆没什么意义的吐槽,下面写一点点稍微有点小价值的建议。
1. 如果你去看opensocial的文档,里面的例子都会是gadget的例子。如果你真的打算做跨container的opensocial应用,就忘掉gadget裸用html+js吧,因为除了orkut之外,没发现哪个container支持gadget规范。
2. 如果你是基于兴趣爱好想写opensocial的应用,有点心理准备。各个container都假设你是领工资或者是为了发大财才用这个container。既然你是为了钱或者为了理想做这个,那么无论用户体验多差、系统多难用,你还是会坚持用下去。而如果你是凭爱好,嘿嘿,嘿嘿嘿嘿,嘿嘿嘿嘿嘿嘿。