<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Finian's WebLog &#187; xiaonei</title>
	<atom:link href="http://finian.cn/blog/tag/xiaonei/feed" rel="self" type="application/rss+xml" />
	<link>http://finian.cn/blog</link>
	<description>一只闷骚IT宅男的网络日志</description>
	<lastBuildDate>Wed, 12 Aug 2009 16:42:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>使用嘀咕更新校内网状态</title>
		<link>http://finian.cn/blog/309/update-xiaonei-status-by-digu.html</link>
		<comments>http://finian.cn/blog/309/update-xiaonei-status-by-digu.html#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:08:24 +0000</pubDate>
		<dc:creator>finian</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[digu]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[xiaonei]]></category>

		<guid isPermaLink="false">http://finian.cn/blog/?p=309</guid>
		<description><![CDATA[校内网虽然也随大流在去年推出了开放平台，但实际上其开放程度还远远不够。从一开始的“霸王条款”到目前令人诟病的开发者文档，可以看出，这其实已经不是心态问题而是态度问题了。不够开放或许是国内大多数互联网应用的通病，这当然还有更深层次的原因，比如出于商业策略方面的考虑。或许大多数互联网从业者认为，开放就意味着资源的流失，这可能是事实，但问题总有两面性，“流失资源”未必就会导致价值损耗。平台化是个例子，越是开放的平台，就越能吸引用户和第三方依赖者，因为开放往往意味着灵活，这是吸引用户的一个因素。同时，被平台“流失的资源”所吸引的第三方依赖者的加入，使平台的功能外延得到不断扩大，这是吸引用户的另一个因素，因此，平台表面上虽然流失了资源，但用户的增长以及第三方应用的依赖，却是平台价值提升的源泉。而第三方依赖者也因此而获得了价值，实现了和平台之间的双赢。当然这只是一个例子，实际情况或许会复杂得多。但不管怎样，未来的互联网必定是全开放的，这是趋势所在。 校内网的开放性确实非常有限，比如你无法像facebook一样，通过第三方应用来更新用户的状态（Status），而用户状态和目前流行的微博客形式是一样的，对于习惯于使用微博客来碎碎念的用户来说，如果能通过微博客来更新用户状态则更为方便。 据说嘀咕的插件嘀神很快会推出更新校内网状态的功能，在此之前，可以自己动手实现一下。（update[090408]: 嘀神今天已经推出更新校内网状态的功能了，赞一下） 虽然校内网没有提供更新用户状态的接口，但问题并不大，因为一个互联网应用无法轻易区分使用它的究竟是人类还是机器人，这给自动化操作带来契机（当然，办法肯定是有的，万恶的验证码就是因此而诞生的。不过据闻即便是强悍的captcha，也会有被干掉的一天。Update[090412]：看看 PWNtcha 这个项目），使用代码模拟用户操作则可实现用户状态的自动更新，虽然这因为校内网没有开放相关接口而稍微增加了些工作量。 那么实现过程就相当明了了，首先获取微博客的更新，然后模拟校内网用户操作，更新用户状态。 以嘀咕为例，通过其API获取嘀咕更新。这里有个小插曲，嘀咕API中可以使用一个参数来获取指定日期以后的所有嘀咕，但在测试中，发现该参数实际上并没有起作用，经小甲师兄确认为bug，这里批评一下嘀咕同学，这个bug不应该啊。获取完嘀咕后，判断哪些是需要更新的（因为API没有完全起作用，获取了全部嘀咕），然后稍微格式化一下（比如去掉html标签，加上相关链接等），接着就可以使用这些嘀咕来更新校内网用户状态了。当然，这个过程得使用轮询的方法（although polling sucks!），因此，计划任务是必不可少的。可惜目前很多虚拟主机都不提供cron服务，而我一般使用实验室的机器来完成这项工作，尽管不太方便。这里推荐没有cron服务的虚拟主机用户使用基于web的cron服务，google一下“free cron”即可。 至此，就已经实现了使用嘀咕来更新校内网的用户状态了，效果如下： 不过，嘀咕的url有点长，拖着条长尾巴有碍观瞻。细心的用户可能会发现，嘀神或打嘀在同步嘀咕时，使用的链接是短url形式的，如 http://digu.com/u/43936，而嘀咕API返回的数据当中并没有包含短url中的id信息，因此这肯定是个内部的接口。一些嘀咕插件使用到了内部接口，比如刚才提到的短url接口，还有手机上传照片的接口等，这些接口并没有对外公开，希望嘀咕真能如其所言，做到真正的开放，吸引更多真正的第三方开发者。 既然无法获得短url的接口，可以自己弄一个，凑合着用吧。这是缩短了网址之后的效果，围观起来是不是爽多了呢:-D]]></description>
			<content:encoded><![CDATA[<p><a href="http://xiaonei.com">校内网</a>虽然也随大流在去年推出了开放平台，但实际上其开放程度还远远不够。从一开始的“<a href="http://tech.sina.com.cn/i/2008-07-10/11252317558.shtml">霸王条款</a>”到目前令人诟病的开发者文档，可以看出，这其实已经不是心态问题而是态度问题了。不够开放或许是国内大多数互联网应用的通病，这当然还有更深层次的原因，比如出于商业策略方面的考虑。或许大多数互联网从业者认为，开放就意味着资源的流失，这可能是事实，但问题总有两面性，“流失资源”未必就会导致价值损耗。平台化是个例子，越是开放的平台，就越能吸引用户和第三方依赖者，因为开放往往意味着灵活，这是吸引用户的一个因素。同时，被平台“流失的资源”所吸引的第三方依赖者的加入，使平台的功能外延得到不断扩大，这是吸引用户的另一个因素，因此，平台表面上虽然流失了资源，但用户的增长以及第三方应用的依赖，却是平台价值提升的源泉。而第三方依赖者也因此而获得了价值，实现了和平台之间的双赢。当然这只是一个例子，实际情况或许会复杂得多。但不管怎样，未来的互联网必定是全开放的，这是趋势所在。</p>
<p>校内网的开放性确实非常有限，比如你无法像<a href="http://facebook.com">facebook</a>一样，通过第三方应用来更新用户的状态（Status），而用户状态和目前流行的微博客形式是一样的，对于习惯于使用微博客来碎碎念的用户来说，如果能通过微博客来更新用户状态则更为方便。</p>
<p>据说<a href="http://digu.com">嘀咕</a>的插件<a href="http://digusync.com">嘀神</a>很快会推出更新校内网状态的功能，在此之前，可以自己动手实现一下。（<strong>update[090408]</strong>: 嘀神今天已经推出更新校内网状态的功能了，赞一下）</p>
<p>虽然校内网没有提供更新用户状态的接口，但问题并不大，因为一个互联网应用无法轻易区分使用它的究竟是人类还是机器人，这给自动化操作带来契机（当然，办法肯定是有的，万恶的验证码就是因此而诞生的。不过据闻即便是强悍的captcha，也会有被干掉的一天。<strong>Update[090412]</strong>：看看 <a href="http://caca.zoy.org/wiki/PWNtcha">PWNtcha</a> 这个项目），使用代码模拟用户操作则可实现用户状态的自动更新，虽然这因为校内网没有开放相关接口而稍微增加了些工作量。</p>
<p>那么实现过程就相当明了了，首先获取微博客的更新，然后模拟校内网用户操作，更新用户状态。</p>
<p>以嘀咕为例，通过其<a href="http://code.google.com/p/digu-api/wiki/DiguApi">API</a>获取嘀咕更新。这里有个小插曲，嘀咕API中可以使用一个参数来获取指定日期以后的所有嘀咕，但在测试中，发现该参数实际上并没有起作用，经<a href="http://www.digu.com/bollin">小甲</a>师兄确认为bug，这里批评一下嘀咕同学，这个bug不应该啊。获取完嘀咕后，判断哪些是需要更新的（因为API没有完全起作用，获取了全部嘀咕），然后稍微格式化一下（比如去掉html标签，加上相关链接等），接着就可以使用这些嘀咕来更新校内网用户状态了。当然，这个过程得使用轮询的方法（although polling sucks!），因此，计划任务是必不可少的。可惜目前很多虚拟主机都不提供cron服务，而我一般使用实验室的机器来完成这项工作，尽管不太方便。这里推荐没有cron服务的虚拟主机用户使用基于web的cron服务，google一下“<a href="http://www.google.com/search?hl=en&#038;q=free+cron&#038;btnG=Google+Search&#038;aq=f&#038;oq=">free cron</a>”即可。</p>
<p>至此，就已经实现了使用嘀咕来更新校内网的用户状态了，效果如下：<br />
<a rel="lightbox" href="http://pic.yupoo.com/finian/3212873c3014/j6icb7ym.jpg"><img src="http://pic.yupoo.com/finian/3212873c3014/medium.jpg" alt="naruto" /></a></p>
<p>不过，嘀咕的url有点长，拖着条长尾巴有碍观瞻。细心的用户可能会发现，嘀神或<a href="http://digublog.com">打嘀</a>在同步嘀咕时，使用的链接是短url形式的，如 http://digu.com/u/43936，而嘀咕API返回的数据当中并没有包含短url中的id信息，因此这肯定是个内部的接口。一些嘀咕插件使用到了内部接口，比如刚才提到的短url接口，还有手机上传照片的接口等，这些接口并没有对外公开，希望嘀咕真能如其所言，做到真正的开放，吸引更多真正的第三方开发者。</p>
<p>既然无法获得短url的接口，可以自己弄一个，凑合着用吧。这是缩短了网址之后的效果，围观起来是不是爽多了呢:-D<br />
<a rel="lightbox" href="http://pic.yupoo.com/finian/8905573c301a/e0nt4iqs.jpg"><img src="http://pic.yupoo.com/finian/8905573c301a/medium.jpg" alt="naruto" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://finian.cn/blog/309/update-xiaonei-status-by-digu.html/feed</wfw:commentRss>
		<slash:comments>4473</slash:comments>
		</item>
	</channel>
</rss>

