一、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客户端接入新浪微博、腾讯微博和人人网demo源代码。对应的文章为:http://blog.csdn.net/yanbin1079415046/article/details/7858581。
在开发过程中,接入新浪微博的官方API至关重要。首先,你需要在新浪微博开放平台上注册并创建一个应用,从而获得AppKey和AppSecret。这两个密钥将在后续的开发过程中被用于身份验证。尽管新浪微博提供了相应的SDK,...
2. **OAuth授权**:为了接入新浪微博API,开发者需要理解OAuth授权机制。这是微博平台用于安全地验证应用程序身份的一种方式,确保用户数据的安全。 3. **网络请求库**:在Android中,通常使用如Retrofit、Volley或...
SDK使得开发者能够轻松地接入新浪微博的服务,例如授权登录、发布微博、读取时间线等功能。 对于授权登录,开发者需要在新浪开放平台上注册并申请得到APP Key,这是每个应用的唯一标识。在代码中,通过设置这个APP ...
#### 二、新浪微博开放平台接入 - **申请API密钥**:首先需注册并登录新浪微博开放平台,创建一个新的应用项目,从而获得App Key和App Secret,这两个密钥将在后续的数据交互过程中用于身份验证。 - **API文档与工具...
本项目“仿照新浪微博Android客户端个人中心的ScrollView”旨在实现与新浪微博应用个人中心界面相似的滚动效果。这个压缩包包含了实现这一功能的相关代码文件。 在Android客户端的个人中心界面,通常会展示用户的...
该课程设计报告主要介绍了开发一个基于安卓系统的简易新浪微博客户端的过程,旨在提高学生的安卓应用开发技能,理解OAuth认证协议,并熟悉Android SDK和相关开发工具。以下是报告中的关键知识点: 1. **设计目标**...
新浪微博开放平台为开发者提供了SDK和API文档,允许开发者接入其服务。注册开发者账号,创建应用后,可以获得API密钥,这些密钥在后续的登录授权和数据请求中至关重要。 在实现登录功能时,我们会使用OAuth 2.0协议...
新浪微博第三方客户端,集成官方文档开源部分数据接入与展现
2. **接入微博API**: - 注册开发者账号:在新浪开放平台注册,创建新应用,获取App Key和App Secret,这两个值用于身份验证和访问权限。 - 使用RestApi:决定不使用新浪提供的SDK,而是直接调用其Restful API进行...
微博是中国最具影响力的社交媒体平台之一,而新浪微博开放平台SDK则是开发者们接入微博服务、构建第三方应用的重要工具。本文将深入探讨这个SDK的核心功能、使用场景以及如何通过它来扩展你的应用程序。 ### SDK...
1. **OAuth认证**:在Android应用中接入微博服务,首先需要进行OAuth认证。OAuth是授权的一种开放标准,允许用户让第三方应用访问其私密资源(如微博账号)而不必将用户名和密码泄露给第三方。在这个案例中,开发者...
《Android程序实现新浪微博分享功能详解》 在移动应用开发领域,社交网络的集成已经成为不可或缺的一部分。其中,新浪微博作为中国主流的社交媒体平台之一,其API接口被广泛应用在各种Android应用程序中,用于实现...
本项目是一款专为Android用户打造的聚合型微博客户端,下面是官方对本项目功能的一些介绍: 一键同步所有帐号,支持新浪、腾讯、搜狐、网易和饭否微博平台; 即拍即传,方便的拍照功能,记录生活点滴,享受快乐微博;...
在接入新浪微博SDK的过程中,开发者首先需要在新浪开放平台上注册应用,获取AppKey和AppSecret,这些是验证应用身份的关键。然后,通过OAuth2.0授权协议,引导用户授权,获取Access Token,这是后续调用微博API的...
### Android客户端与SNS网站接入细节备忘录 #### 一、引言 随着移动互联网的发展,社交网络服务(Social Networking Services,简称SNS)已成为人们日常生活中不可或缺的一部分。为了更好地利用这些平台进行用户...