新浪微博API客户端OAuth认证直接获取pin

国内的推,新浪确实是很open的。对比腾讯的open.qq.com上关于微博这块,腾讯就是找喷,真是玷污了这么好的一个域open,我感觉叫close还差不多。

说到新浪在强烈推荐下新浪的开放平台SAE,确实很强大啊,在这个上面你搭个博客简直就是秒杀啊。memcache、mysql、队列。。。确实很赞,还有一点,按照所用来收费,用多少收多少,避免资源浪费。这种模式在国外可能会很火,毕竟还是个人、小型团体用的多一点,有实力的就自己搞运维了。但是在国内个人用户的备案是个很大的问题,还有就是内容监管,总之天朝总是特别点。

 但是sina的SAE和微博的开放平台大方向都是对的,开源的力量是巨大的。腾讯微博如果不是他的用户量,他也是网易和搜狐那样半死不活的状态。

废话不多说,来说下微博开放平台的OAuth用户认证。web版本就很简单了一个url的回调就获取到了需要的key,但是如果是客户端版本那么只能通过web然后用户输入密码获取到pin码,然后输入到客户端获取到access key,很是麻烦。

这里提供一种直接获取pin的方法,避免用户操作,用户所做的只有在客户端输入用户名密码其他的全部自动完成。

 思路:当获取到pin的url的时候,我们在代码中采取post的方式把用户的信息post到服务器,然后从返回的网页内容中匹配出pin码,然后自动获取accesskey

附代码:

改写的OAuthUpdate,原来的例子中是弹出浏览器然后获取,现在改为通过getPin方法来获取

 

 

public String getPin(String url, String token)

获取pin的方法,先通过readContentFromPost方法获取post(登录)动作之后服务器的返回页面,然后从页面中提取

 

 

public String readContentFromPost(String url, String token)

通过HttpURLConnection获取post后的返回页面(所有参数均写死,如需要应用,请自行独立出来)

 

 

这样一个自动获取OAuth的代码就OK了

获取到的key:

将上面这些方法分别放入sdk代码中,直接运行就会在你的微博里面发送一条微博信息。

获取到的accesskey是可以继续使用的,如下:直接将返回的accesskey设置成功后就可以发送微博信息,不需要再次OAuth认证

 

 

这种方法的缺点在于,太依赖与sina的页面,如果那天换了个图片的pin,就悲剧了。

所以可以考虑改造geiPin方法,如果自动获取失败就走弹出网页的方法。体验稳定两不误。

插入结果:

(转自:http://blog.csdn.net/lywybo/archive/2010/11/25/6035298.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值