新浪微博提供了AIR的SDK,这给Flash开发者提供了开发机会,目前AIR已经支持android平台,针对iOS和Blackberry的开发工具也在更新中,如果能使用新浪提供的SDK开发移动应用,还是很有吸引力的,毕竟微博现在已经成为了时下最热门的web站点。
不过如果直接使用新浪提供的SDK来开发Android程序,还需要做一番DIY。上次为了参加上海的Flash技术交流会,我准备了一个Demo,就是使用AIR为Android开发新浪微博客户端,花了点时间将新浪的SDK作了一番修改,解决了一些问题,这里分享下其中的过程,如果有朋友有兴趣做类似的事,可以省一番功夫。
新浪微博的SDK,提供了两种远程登录方式:
1. 通过常规的HTTP请求来验证,客户端将帐号和密码发送至服务器端进行验证,客户端接收返回结果。这种方式简单易用,但缺点也是很明显的,那就是不安全,首先客户端需要获取帐号和密码,然后再发送情况,所有的请求都是明文,而且如果有恶意程序,那账户的安全没法保障,因此,这种方式是不推荐的。
2. 通过oauth协议,这可以说是目前最流行的方式,Facebook、Twitter等都采用了这种方式。如果不了解oauth协议的详情可以google。使用oauth协议的一个好处是第三方程序不会接触账户信息,登录过程是在服务器的网页上完成的,整个过程安全、简单。通过验证和授权后,第三方程序才能访问服务器上的数据信息。
使用oauth协议,在验证账户时,需要打开服务器上的登录页面,用户输入账户密码登录成功后,再回到程序。
新浪的做法是,打开浏览器进入到登录页面,登录成功后,显示一个pin码,然后用户手工将pin码输入到客户端页面,再进行验证。然而,这一过程在手机上很难操作,基本上不具备可用行。
为了自动获取登录成功后的pin码,最好的方式是AIR程序中直接嵌入网页,并且能捕获到登录成功后的pin码信息。幸运的是,新浪的API提供了这种可能性。
在demos.zip中,有个QuickSharePhoto,是使用Flash Build Burrito开发的微博客户端程序,可以拍照,发送微博,其中包括了改动后的新浪AIR SDK。主要的修改在com.sina.microblog.MicroBlog这个类中,使用了AIR Android特有的StageWebView来实现嵌入浏览器页面这个功能。
http://www.fluidea.cn/20101128/demos.zip