基于Android SDK腾讯微博授权认证实现
来源:互联网 发布:iphone拨号软件 编辑:程序博客网 时间:2024/06/11 16:23
基于Android SDK腾讯微博授权认证实现
2013年12月8日腾讯微博SDK使用研究
前言:小巫之前使用了新浪微博Android SDK开发了一个仿制官方新浪微博客户端的实现,现在我有了新的需求就是集成腾讯微博来开发一款应用,所以我就去腾讯微博开放平台(http://dev.t.qq.com/)取经了。创建了一个无线应用,拿到了自己的appkey和appScret。然后下载了Android SDK,我下了两个不同版本的SDK,一个是V1.2,另一个是最新的V2.0,童鞋们可以到这里下载(http://wiki.open.t.qq.com/index.php/SDK下载)。其实拿到SDK,里面就有开发文档和应用示例,import到项目当中去,研究一下就知道如何进行授权了。关于新浪微博和腾讯微博的授权方式,都是类似的,目前的版本都已经集成了SSO授权方式,什么是SSO授权方式不知道同学们有没有概念,就是快速授权,只要你安装了官方微博客户端,你只要使用这种授权方式会跳转到直接授权界面,而无需用户进行任何输入,就可以直接授权访问微博数据。
下面我就把Android SDK V1.2和Android SDK V2.0的授权认证的实现给大伙呈现一下。
当然你要把Android_SDK_v1.2.jar导入到你的项目当中去
步骤:
1.声明微博授权类
- // 腾讯微博授权类
- private OAuthV2 oAuthV2;
2.实例化微博授权对象
- /** Android SDK v1.2授权方式 **/
- // 腾讯微博授权
- oAuthV2 = new OAuthV2(TengXunConstants.redirectUri);
- oAuthV2.setClientId(TengXunConstants.clientId);
- oAuthV2.setClientSecret(TengXunConstants.clientSecret);
- // 关闭OAuthV2Client中默认开启QHttpClient.
- OAuthV2Client.getQHttpClient().shutdownConnection();
- intent = new Intent(mTabPager, OAuthV2AuthorizeWebView.class);
- intent.putExtra("oauth", oAuthV2);
- startActivityForResult(intent, 2);
- package com.wwj.weiboClient.model;
- /**
- * 腾讯微博常量
- *
- * @author wwj
- *
- */
- public interface TengXunConstants {
- // !!!请根据您的实际情况修改!!! 认证成功后浏览器会被重定向到这个url中 必须与注册时填写的一致
- String redirectUri = "http://blog.csdn.net/wwj_748";
- // !!!请根据您的实际情况修改!!! 换为您为自己的应用申请到的APP KEY
- String clientId = "801453361";
- // !!!请根据您的实际情况修改!!! 换为您为自己的应用申请到的APP SECRET
- String clientSecret = "522653bcd4d494011750ada52b7c758b";
- }
3. 返回结果处理
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == 2) {
- if (resultCode == OAuthV2AuthorizeWebView.RESULT_CODE) {
- oAuthV2 = (OAuthV2) data.getExtras().getSerializable("oauth");
- if (oAuthV2.getStatus() == 0) {
- Toast.makeText(mTabPager, "登录成功", Toast.LENGTH_SHORT)
- .show();
- }
- }
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
Android SDK V2.0的授权认证和SSO授权认证实现
同样要导入必须的jar包,将Android_SDK.jar、Android_SDK_component.jar和commons-httpclient-3.0.0.jar复制到libs文件夹中即可。
1. 腾讯微博授权方式
- /** Android SDK V2.0 授权方式 **/
- intent = new Intent(mTabPager, Authorize.class);
- startActivity(intent);
授权界面效果:
- /** Android SDK v2.0 SSO授权方式 **/
- long appid = Long.valueOf(Util.getConfig().getProperty("APP_KEY"));
- String app_secret = Util.getConfig().getProperty("APP_KEY_SEC");
- tengXunSSOAuth(appid, app_secret);
- /**
- *
- * 腾讯微博Android SDK V2.0 SSO授权方式
- *
- * @unused 未使用
- * @param appid
- * @param app_secret
- */
- private void tengXunSSOAuth(long appid, String app_secret) {
- final Context context = getActivity().getApplicationContext();
- AuthHelper.register(context, appid, app_secret, new OnAuthListener() {
- @Override
- public void onWeiBoNotInstalled() {
- Toast.makeText(context, "onWeiBoNotInstalled", 1000).show();
- Intent i = new Intent(context, Authorize.class);
- startActivity(i);
- }
- @Override
- public void onWeiboVersionMisMatch() {
- Toast.makeText(context, "onWeiboVersionMisMatch", 1000).show();
- Intent i = new Intent(context, Authorize.class);
- startActivity(i);
- }
- @Override
- public void onAuthFail(int result, String err) {
- Toast.makeText(context, "result : " + result, 1000).show();
- }
- @Override
- public void onAuthPassed(String name, WeiboToken token) {
- Toast.makeText(context, "passed", 1000).show();
- Util.saveSharePersistent(context, "ACCESS_TOKEN",
- token.accessToken);
- Util.saveSharePersistent(context, "EXPIRES_IN",
- String.valueOf(token.expiresIn));
- Util.saveSharePersistent(context, "OPEN_ID", token.openID);
- Util.saveSharePersistent(context, "OPEN_KEY", token.omasKey);
- Util.saveSharePersistent(context, "REFRESH_TOKEN", "");
- Util.saveSharePersistent(context, "NAME", name);
- Util.saveSharePersistent(context, "NICK", name);
- Util.saveSharePersistent(context, "CLIENT_ID", Util.getConfig()
- .getProperty("APP_KEY"));
- Util.saveSharePersistent(context, "AUTHORIZETIME",
- String.valueOf(System.currentTimeMillis() / 1000l));
- }
- });
- AuthHelper.auth(mTabPager, "");
- }
SSO授权效果图
以上就是新旧版本SDK的授权实现啦,只要授权搞定了,开发者们就可以轻松获取微博数据了,至于怎么实现你们看着办吧。
来源:http://blog.csdn.net/wwj_748/article/details/17198989
来源:http://blog.csdn.net/wwj_748/article/details/17198989
- 基于Android SDK腾讯微博授权认证实现
- 基于Android SDK腾讯微博授权认证实现
- Android 使用腾讯微博SSO授权基于腾讯demo的修改
- 使用share SDK实现腾讯微博授权登录分享(1.x版本)
- 使用share SDK实现腾讯微博授权登录分享(1.x版本)
- 有奖试读 使用share SDK实现腾讯微博授权登录分享(1.x版本)
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- Android新浪微博OAuth授权认证
- android 腾讯微博分享功能实现及自定义webview认证
- Android应用第三方授权登录 之 【腾讯微博】
- 新浪微博Android客户端SSO授权认证缺陷
- 新浪微博Android客户端SSO授权认证缺陷
- 新浪微博Android客户端SSO授权认证缺陷
- 新浪微博Android客户端SSO授权认证缺陷
- 新浪微博Android客户端SSO授权认证缺陷
- Android新浪微博开发(一)授权认证
- 微信公众号授权认证实现
- android腾讯微博Oauth2.0认证以及登录
- Embedded Server:像写main函数一样写Web Server
- 全文检索 Compass 配置使用
- 帮助了解当前线程/进程/系统效能的API
- 老鼠走迷官(一)
- 贝塞尔曲线 总结
- 基于Android SDK腾讯微博授权认证实现
- js基本语句
- SAX解析XMl
- stm32快速学习5——串口中断接收
- sciTE设置
- 标准库rand()函数的缺陷以及Blitz++随机数生成的简介
- PHP 【解决】中文乱码问题
- Qt多线程编程中的对象线程与函数执行线程
- stm32快速学习4——串口发送字符