原文:http://blog.csdn.net/coolszy/article/details/6561841
腾讯微博OAuth认证第二步是获取请求用户授权的Request Token,今天我们就学习如何获取。说是获取Request Token,其实我们的代码目的就是获取一个验证码,有了这个验证码,我们才可以进行下面的授权验证过程。
首先我们学习下获取Request Token的API:
用户授权request_token
URL:https://open.t.qq.com/cgi-bin/authorize
HTTPS请求方式:GET
请求参数:
oauth_token:上一步中获得的未授权的Request Token
使用示例如下:
https://open.t.qq.com/cgi-bin/authorize?oauth_token=80484decceb142dfaf5791c9cb9cd256
授权后,回调URL:
http://qunmgr.qq.com/oauthapi/callback.php?oauth_token=80484decceb142dfaf5791c9cb9cd256&oauth_verifier=335566
说明:
①此页面中会要求用户登陆,然后选择同意或者拒绝对应用授权。
②授权成功后:
A: web应用会重定向到oauth_callback所指定的URL(含返回参数)。
B: 客户端应用(oauth_callback=null)会在网页中给出授权码,用户需要手工将验证码输入到应用中才能完成授权流程。
撇开说明,我们先看下API介绍,获取请求用户授权Request Token的URL为https://open.t.qq.com/cgi-bin/authorize,参数只有一个,即oauth_token,它的值为获取未授权的Request Token返回结果中的oauth_token。这个我们可以从上一节介绍的getRequestToken()方法获取。有了请求路径和请求参数后,我们就可以模拟Http请求,代码如下:
getRequestToken();
url = "https://open.t.qq.com/cgi-bin/authorize";
httpMethod = "GET";
params = "oauth_token=" + oauthToken;
try
{
SyncHttp http = new SyncHttp();
String response = http.httpGet(url, params);
System.out.println(response);
} catch (Exception e)
{
e.printStackTrace();
}
运行程序,控制台输入如下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">......</html>
服务器返回的信息为html页面,并不是我们所需要的结果,这说明我们处理流程有问题,这是我们再看下说明的第一点:此页面中会要求用户登陆,然后选择同意或者拒绝对应用授权。当我们请求后,腾讯微博认证平台会重定向到用户登陆的界面,因此我们必须在Android系统中使用浏览器提交请求,然后才能正确的显示登陆界面,修改后代码如下:
/**
* 获取授权码
*/
protected void getVerifier()
{
String url = "https://open.t.qq.com/cgi-bin/authorize";
Weibo weibo = new Weibo();
//修改getRequestToken()方法,返回结果为HashMap
Map<String, String> map = weibo.getRequestToken();
//获取oauth_token
String oauthToken = map.get("oauth_token");
//构造请求的URL
StringBuilder urlBuilder = new StringBuilder();
urlBuilder.append(url);
urlBuilder.append("?");
urlBuilder.append("oauth_token="+oauthToken);
Uri uri = Uri.parse(urlBuilder.toString());
//通过Intent代码Android系统的浏览器
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
运行程序后首先模拟器显示的界面如下:
当我们点击Button后会执行上面的getVerifier()方法,请求后浏览器会重定向到QQ登陆界面,注意该界面是腾讯给我们提供的,保证了用户帐号的安全。
输入QQ号和密码,然后点击授权,然后腾讯开放平台会返回授权码给我们,我们使用该授权码可进行进一步的授权操作,在下一节中给大家讲解。
课程下载地址:http://u.115.com/file/e6ct17hg
文档下载地址:http://download.csdn.net/source/3405214
源码下载地址:http://u.115.com/file/e6ct266h
分享到:
相关推荐
腾讯微博Android客户端开发——获取未授权的Request Token,课程下载地址:http://blog.csdn.net/coolszy
5.获取请求用户授权Request_Token.rar 5.获取请求用户授权Request_Token.rar 5.获取请求用户授权Request_Token.rar 腾讯微博Android客户端开发
4.获取未授权的Request_Token.rar 4.获取未授权的Request_Token.rar .获取未授权的Request_Token.rar .腾讯微博Android客户端开发
JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...
6.换取Access_Token.rar 6.换取Access_Token.rar 6.换取Access_Token.rar 腾讯微博Android客户端开发
Android手机上的新浪微博客户端程序Java源码下载,可了解到android中的域名获取等操作,http操作,发微博的作者操作,sqlite操作和微博浏览显示操作,包括了界面到数据库和网络较综合的操作技巧。包括使用sqlite创建...
使用oauth授权,实现新浪微博与自己网站帐号绑定,并发布微博内容;根据这个功能, 主要将新浪微博返回来的oauth_token,oauth_token_secret存储到数据库中,然后可以 ...————————转发——————————
新浪微博的例子 包括 登录,获取认证,存储证书,加关注,取消关注,获取个人信息
本SDK采用腾讯目前oauth1.0的授权机制,换取2.0token,API功能接口利用了oauth2,更为简洁。 实现的功能: 1.oauth1.0授权及2.0授权 2.实现了腾讯开放平台上列举出的所有功能,包括比较复杂的发表图片微博 3.可以...
c# WebApi Owin 适用Microsoft.Owin.Security.OAuth Authorize - 特性验证
—————————————————————————————————— 生成私钥 - ssh-keygen -t rsa -b 2048 -f private.key —————————————————————————————————— 生成公钥 ...
同时,文档还提供了关于 OAuth 授权的详细信息,包括如何实例化 OAuth 授权信息记录实体,请求未授权的 request_token 和 request_token_secret,和使用 WebView 让用户授权等。 4. OAuth 授权 OAuth 授权是腾讯...
微信公众平台 网页授权获取用户基本信息 //获取从wxProcess.aspx传递过来的跳转地址reurl if (Request.QueryString["reurl"] != null && Request.QueryString["reurl"] != "") { reurl = Request.QueryString["re...
主要介绍了Android token过期刷新处理的方法示例,本文详细的介绍了2种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
WebApi token+签名认证的主要原理是:1....服务器端每次接收到请求就获取对应用户的token和请求参数,服务器端再次计算签名和客户端签名做对比,如果验证通过则正常访问相应的api,验证失败则返回具体的失败信息
新浪微博官方推荐的Java客户端 weibo4j 一直没有发布到maven仓库,而我们是重度maven用户,因而重新发明了这个新的轮子。 通过maven引用weiboclient4j 在项目pom.xml里面加入依赖: com.github.hoverruan ...
ios版本新浪微博客户端源代码 client_ID = (你申请应用的appkey) client_SERCRET =(你申请应用的app_secret) redirect_URI =(回调地址,跟网上配置的一致,本人比较穷,而且用的是客户端,所以这里就为空) ...
AliOssServiceImpl java获取阿里STS token AliOSS获取token 阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的...
浙江政府微应用接口Postman调用脚本,获取Token、获取用户信息, 直接使用Postman导入此文件,修改Pre脚本里面的Ak和Sk, 按需要修改接口的st(即ticket)和token的值, 即可进行接口测试
android七牛云本地获取token,不需要从业务服务器上获取和删除服务器上文件.