首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

4.腾讯微博Android客户端开发——获取未受权的Request Token

2012-08-17 
4.腾讯微博Android客户端开发——获取未授权的Request Token?原文:http://blog.csdn.net/coolszy/article/de

4.腾讯微博Android客户端开发——获取未授权的Request Token

?

原文:http://blog.csdn.net/coolszy/article/details/6547117

前面给大家介绍过腾讯微博API通过以下步骤来完成认证授权:

1.获取未授权的Request Token(temporary credentials)

2.请求用户授权Request Token

3.使用授权后的Request Token换取Access Token(token credentials)

本次给大家介绍如何获取未授权的Request Token。

在腾讯微博开放平台的API中介绍了获取Request Token的URL地址、所需要的参数以及返回内容。

?

?

?

?

?

获取request_token?

URL:https://open.t.qq.com/cgi-bin/request_token

格式:xml,json

HTTPS请求方式:GET

是否需要鉴权:true

请求数限制:true

请求参数:

oauth_callback:回调URL 如果是桌面应用或手机应用没有回调URL,采用pin码方式,请填上?oauth_callback=null

oauth_consumer_key:你申请的appkey

oauth_nonce:随机串(32个字符长度)随机生成,只能使一次,与时间戳一起 防重放

oauth_signature:oauth请求签名 oauth请求的签名,根据oauth协议中算法生成basestring 后,用appsecret 对basestring 经hmac_sha1生成的签名串

oauth_signature_method:签名方法(HMAC-SHA1)

oauth_timestamp:时间戳 你的请求当前时间戳 (你的服务器时间你定要准确,不然请求会被拒绝掉)

oauth_version:oauth版本号(填 1.0 )

?

使用示例如下:

https://open.t.qq.com/cgi-bin/request_token?oauth_callback=http%3A%2F%2Fqunmgr.qq.com%2Foauthapi%2Fcallback.php&oauth_consumer_key=0aae7ba5c10d4b939694b0b3b9ffe8ac&oauth_nonce=b788149731e0ed75daa03a6e1e30427c&oauth_signature=zO5%2FgT%2FP6tbhBBZVuoyfjPwjdxY%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1288932298&oauth_version=1.0

?

返回结果:

oauth_token=a63f4a0e1242462fb8c11e53159ba294&oauth_token_secret=40ece707e064128e4fec692e3c09c692&oauth_callback_confirmed=true

返回结果说明:

oauth_token:返回的request_token

oauth_token_secret:返回的request_secret

oauth_callback_confirmed:回调确认

使用流程图表示则十分的简单:

?4.腾讯微博Android客户端开发——获取未受权的Request Token

其中URL地址和请求方式我们已经可以直接指定:

?

通过上面代码我们就能获取平台传递过来的信息,当然代码显得比较臃肿,课中中会分割在几个方法中。正常的返回结果为:

oauth_token=079ad6989409456a9878bf41ca8d2d7a&oauth_token_secret=b494075906b8846416735bf802ced89f&oauth_callback_confirmed=true

我们可以编写一个辅助方法获取每个返回参数的值,已供以后使用:

课程下载地址:http://u.115.com/folder/f6161918260?

/** * 分割返回结果 *  * @param response *            返回字符串 * @return */public static Map<String, String> splitResponse(String response){// 保存返回结果Map<String, String> map = new HashMap<String, String>();// 判断是否为空if (!TextUtil.isEmpty(response)){// 已“&”进行分割String[] array = response.split("&");if (array.length > 2){String tokenStr = array[0]; // oauth_token=xxxxxString secretStr = array[1];// oauth_token_secret=xxxxxxxString[] token = tokenStr.split("=");if (token.length == 2){map.put("oauth_token", token[1]);}String[] secret = secretStr.split("=");if (secret.length == 2){map.put("oauth_token_secret", secret[1]);}}}return map;}
?文档下载地址:http://www.docin.com/p-220252513.html?
源码下载地址:http://u.115.com/folder/f611696b2f6

?

热点排行