sina微博-oauth认证与状态更新(android)

本文介绍如何使用Sina微博SDK通过OAuth认证,并实现发送微博的功能。文章详细讲解了OAuth认证流程,包括获取requestToken、用户授权及获取AccessToken的过程。此外,还介绍了如何利用获取的AccessToken发布微博。
首先

下载sdk并导入eclipse

 

ps:以下测试基于weibo4J

 

 

Sina微博SDK中提供了大量的接口,这些接口全部都是通过URL方式进行调用

每次接口的调用都是一个短连接request   然后sina返回一个response

如:

URL

http://api.t.sina.com.cn/statuses/update.(json|xml)

 

 

 

首先需要先去sina微博创建一个应用,会获取一个AppKey和AppSecret

 

weibo.java将keyAppSecret填入

public static String CONSUMER_KEY = "";    //这里填入AppKey

Public static String CONSUMER_SECRET = "";   //填入AppSecret

 

现在说一下认证方式

Sina已经取消basic Auth的支持,因为basic Auth会将用户的账户名和密码暴露给第三方,这就相当的不安全了,因此现在sina微博和腾讯微博都是通过Oauth方式来进行认证

 

Oauth简介:

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

需要保存经过用户授权的KeySecret组合即可对于平台上的所有接口资源进行访问,在传输过程中也可以避免被不怀好意的人通过截包分析的方式获取到用户的帐号与密码

 

sina微博的认证流程

 

Oauth认证

认证流程可比喻成 银行 (sina---代理公司(应用)--用户

代理公司若想获取用户信息,首先需要有银行的代理资质(requestToken

银行询问用户是否授权给代理公司,若同意授权银行将授权文件(授权码)返回给用户

代理公司获取授权文件后,提供代理资质和授权文件获得银行的查询权限(AccessToken和secret)

最后返回查询权限和该用户的信息

1. 第三方应用从sina获取requestToken

2.让用户登陆到sina微博获取对第三方应用的授权码

3.用户将授权码输入给第三方应用

4.第三方使用requestToken和授权码从sinba拿到AccessToken和secret

 

OauthUpdate.java

System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
			System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
            // 1.第三方应用从sina获取requestToken
			Weibo weibo = new Weibo();
			RequestToken requestToken = weibo.getOAuthRequestToken();
            
			System.out.println("Got request token.");
			System.out.println("Request token: "+ requestToken.getToken());
			System.out.println("Request token secret: "+ requestToken.getTokenSecret());
			AccessToken accessToken = null;

			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			while (null == accessToken) {
				//2.让用户登陆到sina微博获取对第三方应用的授权
				System.out.println("Open the following URL and grant access to your account:");
				System.out.println(requestToken.getAuthorizationURL());
				BareBonesBrowserLaunch.openURL(requestToken.getAuthorizationURL());
				System.out.print("Hit enter when it's done.[Enter]:");

				//3.用户将授权码输入给第三方应用
				String pin = br.readLine();
				System.out.println("pin: " + br.toString());
				try{
					//4.第三方应用使用授权码和requestToken拿到AccessToken和secret
					accessToken = requestToken.getAccessToken(pin);



 

Weibo weibo = new Weibo(); debug单步执行即可获取授权码,

然后将授权码输入至控制台,即可返回AccessToken和secret

注:每一个账户都会得到AccessToken,只需要获得一次

 

 

 

上传一条微博信息

将刚才申请授权的代码注释掉

在Weibo weibo = new Weibo(); 下添加

weibo.setToken(Access token,token secret);   //设置访问的token

Weibo.updatestatus(string);    //上传微博信息

 

 

成功更新状态………………

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值