`
linfengsheng
  • 浏览: 129179 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android客户端接入新浪微博

阅读更多

一、OAuth授权认证

新浪微博之前提供了OAuth和Base OAuth两种认证方式,但自从Twitter只支持OAuth认证方式以来,各大应用都纷纷转向OAuth认证方式,而新浪微博的开放平台也将在近日停止Base OAuth的认证方式。

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同样新浪微博通过OAuth认证方式建立了普通新浪微博用户、客户端程序(我们正在开发的这个android客户端程序)、新浪微博三者之间的相互信任关系,让客户端程序不需要知道新浪用户的账号和密码也能在程序中浏览、发布微博,这样有效的保护了用户账号的安全性。

 


二、结合新浪微博,介绍OAuth认证关键字组及其流程

第一组:(App Key和App Secret、CallBackUrl)

第二组:(Request Token和Request Secret)

第三组:(oauth_verifier)

第四组:(user_id、Access Token和Access Secret)

步骤(1):新浪微博的OAuth认证过程,当用户第一次使用本客户端软件时,客户端程序用第一组作为参数向新浪微博发起请求,然后新浪微博经过验证后返回第二组参数给客户端软件同时表示新浪微博信任本客户端软件

步骤(2):当客户端软件获取第二组参数时作为参数引导用户浏览器跳至新浪微博的授权页面,然后用户在新浪的这个授权页面里输入自己的微博账号和密码进行授权,完成授权后根据客户端设定的回调地址把第三组参数返回给客户端软件,并表示用户也信任本客户端软件

步骤(3):接下来客户端软件把第二组参数和第三组参数作为参数再次向新浪微博发起请求,然后新浪微博返回第四组参数给客户端软件。据这3个值直接调用新浪的api接口获取相应用户的信息并进行发微博等操作。第四组参数需要好好的保存进XML,下次使用时便可绕过OAuth认证,直接使用第四组参数值进行微博的相关应用。

 


从这个过程来看用户只是在新浪微博的认证网页输入过账户和密码并没有在客户端软件里输入过账户和密码,客户端软件只保存了第四组数据并没有保存用户的账户和密码,这样有效的避免了账户和密码透露给新浪微博之外的第三方应用程序,保证了安全性。

三:使用新浪微博Android SDK

(2)在http://open.weibo.com/wiki/SDK?retcode=6102#Android上下载新浪微博Android SDK即

(3)将下载的SDK解压后 import进eclipse,若只有项目名上有红色感叹号,删除assets目录下的《Android平台微博SDK说明文档》

(4)在AuthorizeActivity.java中将CONSUMER_KEY和CONSUMER_SECRET分别赋值成App Key,App Secret

(5)将语句 eibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_KEY);

修改成 weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET);

(6)部署至真机运行,程序成功进入AuthorizeActivit

 

(7) 【完成步骤(1)】

点击oauth键后,AuthorizeActivity 便使用app key, secret,以及callback_url获得oauth token , oauth_token_secret。运行至语句“startActivity(new Intent(Intent.ACTION_VIEW, uri))”;便打开游览器,访问新浪授权页面。


(8) 【完成步骤(2)】接着由用户输入新浪账号密码完成授权。若正确输入新浪账号密码后页面无反应,没有跳转,则改为用Android自带的默认浏览器打开, QQ、UC等游览器容易把跳转至下一个Activity 的intent截段。授权完成后,跳转至下一个Activity(SDK中设置为TestActivity),如下图,这个跳转主要由AuthorizeActivity中的变量URL_ACTIVITY_CALLBACK和程序的AndroidManifest.xml设定。

跳转的原理请详见http://www.cnblogs.com/hll2008/archive/2011/01/09/1931174.html


(9) 【完成步骤(3)】点击TestActivity中的btnGetTimeline键后,运行TestActivity下share2weibo函数,即进入发布新浪微博的页面,事先可以在手机SD卡根目录下放张abc.jpg的图片。发布后,在用户的新浪微博主页即可见到该微博。


总结:

至此,使用新浪提供的SDK中,成功演示了OAuth认证和发布新浪微博的功能。但集成到Android应用中是并不是每一次都要求用户进行授权。解决的方案是当用户打开软件显示载入页面时,开始检查sqlite库中是否已经保存有用户的新浪微博的UserID号、Access Token、Access Secret的记录,如果一条记录都没有那就说明用户是第一次使用本软件,就跳到认证授权页面进行授权认证操作,即从步骤(1)开始,授权后就将获取的这3个值保存到sqlite库中。如果检查sqlite库时发现已经包括了UserID号、Access Token、Access Secret的记录,那么直接读取,然后根据这3个值直接调用新浪的api接口获取相应用户的信息并进行发微博等操作。

 

 

分享到:
评论

相关推荐

    android客户端接入新浪微博、腾讯微博和人人网

    android客户端接入新浪微博、腾讯微博和人人网demo源代码。对应的文章为:http://blog.csdn.net/yanbin1079415046/article/details/7858581。

    Android-新浪微博第三方客户端集成官方文档开源部分数据接入与展现

    新浪微博第三方客户端,集成官方文档开源部分数据接入与展现

    Android应用源码YiBo聚合微博客户端

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐微博;...

    Android应用源码YiBo聚合微博客户端.zip

    本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐...

    android客户端与SNS网站接入细节备忘录

    本人在12年7月份研究android如何与SNS网站接入时写的备忘录,主要信息也是收集于各SNS网站的接入开发说明,然后加以精简,希望节省大家时间,对大家有帮助。主要网站包括开心网、腾讯微博、新浪微博、人人网。

    新浪微博来自iphone

    是支持新浪帐号的一款Android平台手机微博客户端软件,用户可以通过软件直接更新自己的微博客内容,转发,评论,和好友互动,下载图片等等非常方便!节约流量:数据量更小。界面清晰干净,简单中不简约。该软件支持...

    sina微博Demo

    demo为网络分享,试用于接入新浪微博客户端参考

    MaoBo微博安卓客户端开源(原名YiBo).zip

    YiBo微博是一款专为Android用户打造的聚合型微博客户端,完美支持新浪、腾讯、搜狐、网易以及Twitter五大微博平台,界面清爽,使用简单,支持多账户跨平台同步发布与分享,为您带来不一样的使用体验。软件功能1. ...

    ThinkSNS2.0

    内置接入多个应用平台,无限应用扩展 支持wap,并提供手机客户端,包括iphone和android 多系统账号登录支持,新浪微博,豆瓣等 集成整合各社交媒体平台,账号绑定与关联 通过小插件和大型应用双重机制扩展. 应用...

    YiBo聚合微博源码.zip

    YiBo聚合微博源码是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,...

    历趣安卓市场 V3.05

    多平台接入:支持目前所有安卓系统版本; 快速安装:在浏览界面上便可以快速下载、安装和卸载应用; 搜索应用:每一类应用中最热门的应用关键词将出现在搜索列表的前面; 装机必备:介绍各种用户最需要的应用; 特色...

    ThinkSNS v2.1 Beta PHP版.rar

    为了让用户获得更多可用的应用,我们提供了多种应用接入方式,并内置了多个应用平台,站长无需自己开发,就可以获得海量应用,让用户有更多的选择 支持wap,并提供手机客户端,包括iphone和android 移动互联网是...

    记事狗微博系统最新官方版

    整个V3.5版本从数据库结构、代码规范完善、系统负载性能、后台安全管理、信息导航架构、注册认证体系、内容审核管理、用户关系挖掘、多客户端接入、应用功能扩展等十多个方面做了全面改进提高! 更新说明: 记事狗...

    YiBo聚合微博

    YiBo聚合微博源码是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍:一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台;即拍即传,方便的拍照功能,记录生活点滴,享受...

    记事狗微博系统 v4.0.5 Build20130510

    整个V3.5版本从数据库结构、代码规范完善、系统负载性能、后台安全管理、信息导航架构、注册认证体系、内容审核管理、用户关系挖掘、多客户端接入、应用功能扩展等十多个方面做了全面改进提高! 更新说明: 记事狗...

Global site tag (gtag.js) - Google Analytics