原文: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客户端开发】是关于构建在Android平台上与腾讯微博接口交互的应用程序的过程。在这一过程中,重点涉及OAuth认证,这是一种确保用户信息安全并允许第三方应用访问受保护资源的授权协议。 OAuth认证...
5.获取请求用户授权Request_Token.rar 5.获取请求用户授权Request_Token.rar 5.获取请求用户授权Request_Token.rar 腾讯微博Android客户端开发
【腾讯微博Android客户端开发】涉及的关键知识点主要集中在OAuth认证机制上,这是开发腾讯微博Android客户端时必须掌握的重要概念。OAuth是一种授权协议,旨在允许第三方应用在用户授权的情况下,安全地访问用户在...
腾讯微博Android客户端开发使用OAuth 1.0A版本进行用户授权,以确保用户在使用非官方客户端时,不会直接暴露QQ号和密码,降低安全风险。 OAuth的核心思想是通过令牌(Token)机制来实现授权,而不是直接使用用户名...
4.获取未授权的Request_Token.rar 4.获取未授权的Request_Token.rar .获取未授权的Request_Token.rar .腾讯微博Android客户端开发
2. **重定向用户授权(Redirect User)**:获取到请求令牌后,应用需要将用户重定向到腾讯微博的授权页面。用户在这个页面上可以看到哪些权限将被授予应用,并可以选择是否同意。一旦用户同意,他们会被重定向回应用...
腾讯微博Android客户端开发——换取Access,课程下载地址:http://blog.csdn.net/coolszy。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
《Android仿腾讯微博客户端开发详解》 在移动互联网飞速发展的今天,社交应用已经成为人们日常生活中不可或缺的一部分。作为中国主流的社交媒体平台,腾讯微博在移动端的重要性不言而喻。本篇将详细介绍如何在...
总之,Access Token在腾讯微博Android客户端开发中扮演着核心角色,确保了用户数据的安全和应用的正常运行。正确获取和管理Access Token是实现客户端功能的关键步骤。在实际开发中,开发者需要充分理解OAuth 2.0授权...
本教程主要围绕“新浪微博Android客户端”的源码展开,旨在帮助开发者深入理解微博应用在Android平台上的实现机制。通过学习此教程,你可以了解到如何构建一个功能完善的社交应用,并从中获取到实际开发中的宝贵经验...
【Android代码-腾讯微博客户端源码1.zip】这个压缩包包含的是腾讯微博的客户端源代码,主要用于学习和研究Android应用开发。在这个项目中,我们可以深入理解一个大型社交应用的架构设计、功能实现以及性能优化等方面...
在本压缩包“Android源码——口袋微博服务器客户端代码.zip”中,包含了Android平台上的一个微博客户端应用的源代码。这个应用可能是一个简化版或学习示例,旨在帮助开发者了解如何实现一个与服务器进行交互的...
(2) 客户端引导用户到腾讯微博授权页面。 (3) 用户同意后,腾讯会返回授权码。 (4) 通过授权码换取Access Token和过期时间。 (5) 使用Access Token进行数据交互。 4. 内容转发实现 一旦获取了用户授权,应用可以...
5. 换取Access Token:使用App Key、App Secret和授权码,向腾讯微博API发送POST请求,换取Access Token和Access Token Secret。 6. 使用Access Token:通过Access Token,我们可以进行后续的API调用,获取用户信息...