xiaouncle 2013-06-14
但是我这次想玩的一套程序,包括网站、客户端、移动APP等。也没有什么深入研究,想干就干,网站打算用java,部署到openshift,可是刚写了个测试程序就遇到了拦路虎,程序在本地跑正常,可是一部署到openshift就玩不转了。原来,新浪微博的java库不是官方维护,从twitter的库移植过来的,不知到为什么创建了一个socket,绑定本地地址。但是openshift对端口有限制,且只能绑定内部地址,参考:https://www.openshift.com/kb/kb-e1038-i-cant-bind-to-a-port,如果需要绑定外部地址则需要端口转发,参考:https://www.openshift.com/blogs/getting-started-with-port-forwarding-on-openshift,粗略的看了下好像也是有一定限制,于是把这东西先放一放,先开发客户端试试。
于是又去查了下新浪的开发文档,发现这东西现在有很多语言的开发包,我选择综合症发作,到底选哪种呢?犹豫间忽然想到前端时间写了个灌水工具,能不能用类似的思路进行微博开发呢?这样就不需要API开发包了。基本原理就是使用WinForm的WebBrowser控件模拟进行操作。
经过我的试验,虽然新浪在网页上有一些小机关,但是目前理论上是可行的,但是也存在一些缺点:
1、代码依赖于微博官方页面组织,如标签ID等;
2、官方故意屏蔽,不是正统的开发途径;
3、对多个帐号同时操作存在问题;
4、发送图片等操作没有直接用API来的简单。
5、对于操作产生的结果不能直观获取。
6、这种方法仅限于能和网页进行交互的界面编程。
代码在这里上传。