android 新浪微博Oauth2.0认证以及自定义webview认证

本文介绍了如何避免使用新浪提供的大型jar包,而是将OAuth2.0的源码整合到Android应用中,以自定义WebView的方式实现微博认证。通过修改WeiboDialog.java以解决Dialog遮挡问题,并提供了获取Access_token的方法。这种方式比直接调用新浪jar包更灵活,且附带源码下载。
摘要由CSDN通过智能技术生成

        首先不得不说,自己犯了一个比较窝囊的错误,不过也不能完全怪我,因为大家都知道,新浪微博Oauth2.0提供的jar包,好家伙2M多,谁看谁都不想用,才使得我去研究1.0的使用,研究好久,终于实现可用了,变态的新浪最新说要停止1.0接口的调用,害的我不得不更改了,想想也是,人家升级就是为了好用嘛。好了不抱怨了,因为新浪Oauth2.0比1.0方便多了,也好用多了,在这里我简单说明一下:

      首先我不喜欢新浪提供的那样加jar包的方式,因此就把他们的源码整合到我的应用中,看起来也比较直观.其实很简单,就是把com.weibo.net包copy到自己项目里,把Bug调理好就OK了.这里不多说了,下面讲下如何使用:

  代码片段:   

weibo = Weibo.getInstance();
			weibo.setupConsumerConfig(consumer_key, consumer_secret);
			weibo.setRedirectUrl(mRedirectUrl);
			// 认证
			weibo.authorize(MainActivity.this, new MyWeiboDialogListener());
	class MyWeiboDialogListener implements WeiboDialogListener {

		@Override
		public void onComplete(Bundle values) {
			/***
			 * 保存token and expires_in
			 */

			String token = values.getString("access_token");// 获取access_token

			editor = preferences.edit();
			editor.putString("token", token);
			editor.commit();

			Toast.makeText(MainActivity.this, token, 1000).show();
			// String expires_in = values.getString("expires_in");// 到期时间
			AccessToken accessToken = new AccessToken(token, consumer_secret);
			// accessToken.setExpiresIn(expires_in);

			Intent intent = new Intent();
			intent.setClass(MainActivity.this, MainActivity.class);
			startActivity(intent);

		}

		@Override
		public void onWeiboException(WeiboException e) {

		}

		@Override
		public void onError(DialogError e) {

		}

		@Override
		public void onCancel() {

		}

	}
上面代码我们只需要在接口中保存token,expires_in值,(以便我们以后不用再次Oauth认证) ,但是发现我们只保存token就可以实现,expires_in这个值我想只是个形式,如果到期的话token就会失效,这个时候应该需要从新认证,获取新的token值,(这里占时这么说,我没有调查过,有时间好好研究下在结论.别介意)

发送调用:

				if (token == null || token.equals("")) {
					Toast.makeText(MainActivity.this, "请先Oauth认证", 1000).show();
				} else {
					Utility.setAuthorization(new Oauth2AccessTokenHeader()); // 这一步不能省.
					AccessToken accessToken = new AccessToken(token,
							consumer_secret);
					Weibo.getInstance().setAccessToken(accessToken);
					update(weibo.getInstance(), weibo.getAppKey(), editText
			
评论 111
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值