对于新浪微博这块一直很纠结,auth认证让人吐血。之前项目用到的都是copy别人的,最近想详细了解下,就简单实现一二,以便以后自己更好的运用.
准别好以下常量
public String consumerKey = "2803926882";// key
public String consumerSecret = "d41e6f2d605bd16c785879032ec431f5";// Secret
//自定义回调URL(这个url要在配置文件中配置,)
public static final String CALLBACK_URL = "jjhappyforever://WeiboListActivity";
// requestTokenURL
private final String requestTokenEndpointUrl = "http://api.t.sina.com.cn/oauth/request_token";
// accessTokenURL
private final String accessTokenEndpointUrl = "http://api.t.sina.com.cn/oauth/access_token";
// 授权
private final String authorizationWebsiteUrl = "http://api.t.sina.com.cn/oauth/authorize";
下面两个方法是Oauth.java中的两个方法.
// 获取auth地址
public String RetrieveAuthUrl() throws OAuthMessageSignerException,
OAuthNotAuthorizedException, OAuthExpectationFailedException,
OAuthCommunicationException {
authConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
authProvider = new CommonsHttpOAuthProvider(requestTokenEndpointUrl,
accessTokenEndpointUrl, authorizationWebsiteUrl);
return authProvider.retrieveRequestToken(authConsumer, CALLBACK_URL);
}
//这个方法是获取用户的 userId,token,tokenSecret等信息.
public User getAccessToken(String authUrl)
throws OAuthMessageSignerException, OAuthNotAuthorizedException,
OAuthExpectationFailedException, OAuthCommunicationException {
Log.i(TAG, authUrl);
authProvider.setOAuth10a(true);
authProvider.retrieveAccessToken(authConsumer, authUrl);
User user = new User();
user.userId = authProvider.getResponseParameters().getFirst("user_id");
user.token = authConsumer.getToken();
user.tokenSecret = authConsumer.getTokenSecret();
return user;
}
在Activity中调用.
// 获取authUrl地址
String authUrl = oauth.RetrieveAuthUrl();
// 启动访问新浪认证页面
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
这样就会执行web 认证
在本activity中实现onNewIntent方法,用来执行认证回调后的动作,
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Uri uri = intent.getData();
String verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER);
try {
User user = null;
user = oauth.getAccessToken(verifier);
Log.i(Oauth.TAG, user.toString());
} catch (OAuthMessageSignerException ex) {
ex.printStackTrace();
} catch (OAuthNotAuthorizedException ex) {
ex.printStackTrace();
} catch (OAuthExpectationFailedException ex) {
ex.printStackTrace();
} catch (OAuthCommunicationException ex) {
ex.printStackTrace();
}
}
在这里要说一下配置文件中的配置:
<activity
android:name=".TestActivity"
android:launchMode="singleInstance" ><!-——这个lanchMode模式一定要设置,不设置的话会一直执行oncreate.不会执行onNewIntent 我在这里纠结好久.——>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="Oauth"
android:scheme="jjhappyforevert" />
</intent-filter>
</activity>
到这里就实现了Oauth认证流程.下一篇,要简单介绍下根据开放平台API如果调用用户的微博信息.
分享到:
相关推荐
【Android 新浪微博客户端】 Android 新浪微博客户端是一款专为Android操作系统设计的应用程序,它允许用户在移动设备上轻松访问和交互微博平台。这款客户端集成了新浪微博的核心功能,包括发布和阅读微博、查看...
教程名称:Android平台新浪微博开发实战视频教程(10集)教程目录:【】Android项目_-6(上)【】Android项目_新浪微博-4(上)【】Android项目_新浪微博Android客户端开发ppt【】Android项目_新浪微博OAuth认证-4(下)...
这个项目"Android新浪微博完整例子"是一个很好的实践,可以帮助开发者深入理解Android应用开发的全貌,从用户交互到后端数据处理的每一个环节。通过学习和分析这个项目,开发者可以提升自己的技能,为未来更复杂的...
本文将详细介绍如何在Android应用中集成新浪微博分享功能,包括授权认证和内容分享的具体步骤。 首先,我们需要在新浪开放平台(http://open.weibo.com/)注册开发者账号,创建一个新的应用,获取到App Key、App ...
总之,构建Android新浪微博客户端是一个涉及用户认证、数据解析、界面设计、网络通信等多个技术领域的综合性工程。开发者需要具备扎实的Android开发基础,熟悉网络编程,了解微博API,才能打造出功能完备、用户体验...
Android手机上的新浪微博客户端程序Java源码下载,可了解到android中的域名获取等操作,http操作,发微博的作者操作,sqlite操作和微博浏览显示操作,包括了界面到数据库和网络较综合的操作技巧。包括使用sqlite创建...
在Android平台上实现新浪微博的功能,包括OAuth认证登录以及获取微博信息,是移动应用开发中的常见需求。这个实例项目,"weibo4android",提供了一个完整的解决方案,帮助开发者深入理解和运用相关技术。 首先,...
这个“android新浪微博客户端demo”项目旨在实现接收、发送以及评论微博的功能,这涵盖了Android应用开发的基础以及与社交媒体API的集成。以下是对这些知识点的详细说明: 1. **Android开发环境**:首先,你需要一...
"weibo4android"是一个专门为Android平台设计的新浪微博客户端应用源码,适用于Android 2.2及以上版本。这个项目可能是由开发者为了教学、研究或二次开发目的而发布的,允许用户查看、发布微博,实现社交媒体功能。 ...
在这个“android新浪微博OAuth2认证demo”中,我们将探讨OAuth2.0认证的关键步骤和相关技术。 1. **OAuth2.0的基本流程** OAuth2.0主要分为四个角色:资源所有者(User)、资源服务器(Resource Server)、客户端...
以上就是开发Android新浪微博客户端所涉及的主要知识点。通过深入理解和实践这些技术,开发者可以创建出功能完备、用户体验良好的微博应用。在实际开发过程中,还需要不断学习和适应Android平台的最新技术和最佳实践...
此项目"Android新浪微博案例源码"提供了一个完整的示例,可以帮助开发者深入理解这些技术并实现类似的功能。下面我们将详细探讨这个案例中的关键知识点。 1. **OAuth认证**:在Android应用中接入微博服务,首先需要...
标题中的“Android新浪微博客户端(开题报告)”表明这是一个关于开发Android平台上新浪微博客户端的项目,而描述部分确认了这是一个开题报告,通常包含对课题的研究背景、现状、目标和可行性分析等信息。 在标签中...
《深入剖析Android新浪微博源码》 在Android平台上,微博应用是社交网络的重要组成部分,而新浪作为国内主流的微博平台,其Android版的源码对于开发者来说具有极高的学习价值。通过对新浪官方微博源码的分析,我们...
6. **OAuth认证**:访问新浪微博API通常需要OAuth 2.0认证,这涉及到获取Access Token和Refresh Token的过程。开发者需要理解OAuth的工作原理,以及如何在Android应用中安全存储和管理这些令牌。 7. **UI设计与布局...
本项目提供的是一份完整的Android新浪微博开发源码,结合了OAuth认证过程,使得开发者能够更好地理解和实践这一过程。 OAuth是一种开放标准授权协议,允许用户提供一个第三方应用访问其私密资源,而无需将用户名和...
【Android 新浪微博源码】是一份老旧但完整的Android应用程序源代码,专用于实现新浪微博的客户端功能。这个项目对于那些热衷于学习Android应用开发,尤其是社交媒体应用开发的学生和开发者来说,是一个宝贵的参考...
《Android新浪微博代码详解》 本资源集合包含了关于Android平台下实现新浪微博功能的代码及解析,旨在帮助初学者和团队成员快速掌握Android应用开发中的社交网络集成。通过学习这些材料,开发者能够了解到如何在...
【Android新浪微博客户端】是一款基于Android平台的应用程序,它允许用户浏览、发布、分享微博内容,进行社交互动。作为一款开源工具,它对于Android开发者来说,是深入理解移动社交应用开发和Android SDK应用的一个...