5.腾讯微博Android客户端开发——获取请求用户授权Request Token

腾讯微博OAuth认证第二步是获取请求用户授权的Request Token,今天我们就学习如何获取。说是获取Request Token,其实我们的代码目的就是获取一个验证码,有了这个验证码,我们才可以进行下面的授权验证过程。
首先我们学习下获取Request Token的API:
用户授权request_token URL:http://open.t.qq.com/cgi-bin/authorize HTTPS请求方式:GET 请求参数: oauth_token:上一步中获得的未授权的Request Token 使用示例如下: http://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为http://open.t.qq.com/cgi-bin/authorize,参数只有一个,即oauth_token,它的值为获取未授权的Request Token返回结果中的oauth_token。这个我们可以从上一节介绍的getRequestToken()方法获取。有了请求路径和请求参数后,我们就可以模拟Http请求,代码如下:
getRequestToken(); url = "http://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(); }

运行程序,控制台输入如下代码:
......

服务器返回的信息为html页面,并不是我们所需要的结果,这说明我们处理流程有问题,这是我们再看下说明的第一点:此页面中会要求用户登陆,然后选择同意或者拒绝对应用授权。当我们请求后,腾讯微博认证平台会重定向到用户登陆的界面,因此我们必须在Android系统中使用浏览器提交请求,然后才能正确的显示登陆界面,修改后代码如下:
/** * 获取授权码 */ protected void getVerifier() { String url = "http://open.t.qq.com/cgi-bin/authorize"; Weibo weibo = new Weibo(); //修改getRequestToken()方法,返回结果为HashMap Map 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); }

运行程序后首先模拟器显示的界面如下:
5.腾讯微博Android客户端开发——获取请求用户授权Request Token
当我们点击Button后会执行上面的getVerifier()方法,请求后浏览器会重定向到QQ登陆界面,注意该界面是腾讯给我们提供的,保证了用户帐号的安全。
5.腾讯微博Android客户端开发——获取请求用户授权Request Token
输入QQ号和密码,然后点击授权,然后腾讯开放平台会返回授权码给我们,我们使用该授权码可进行进一步的授权操作,在下一节中给大家讲解。
5.腾讯微博Android客户端开发——获取请求用户授权Request Token
课程下载地址:http://u.115.com/file/e6ct17hg
文档下载地址:http://www.docin.com/p-223575131.html
源码下载地址:http://u.115.com/file/e6ct266h
Tags: 

延伸阅读

最新评论

发表评论