1.下载微博的sdk ,导入微博的jar包两个 android-support-v4.jar和weibosdkcore.jar两个包

2.把新浪微博中的demo_src中SDK中的com,导入到项目中

3.用demo中的constants,主要是参数设置,将里面的参数改成自己的参数。

4,编写代码,主要步奏;

// 初始化微博对象

mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);

// sinaAuthorWebView.loadUrl("https://open.weibo.cn/oauth2/authorize?scope=email&redirect_uri=http://www.sina.com&state=flashmemoAndroid&forcelogin=true&display=mobile&client_id=2529326755");

//获取code

mWeiboAuth.authorize(new AuthListener(), WeiboAuth.OBTAIN_AUTH_CODE);

// 第二步:通过 Code 获取 Token

fetchTokenAsync(mCode, WEIBO_DEMO_APP_SECRET);

5.,主要的核心代码

/**

* 微博认证授权回调类。

*/

class AuthListener implements WeiboAuthListener {

@Override

public void onComplete(Bundle values) {

if (null == values) {

// 获取code失败

return;

}

String code = values.getString("code");

if (TextUtils.isEmpty(code)) {

// 获取code失败

return;

}

// 获取code成功

mCode = code;

// 获取code成功,第二步:通过 Code 获取 Token

fetchTokenAsync(mCode, WEIBO_DEMO_APP_SECRET);

}

@Override

public void onCancel() {

Log.e("LoginActivity", "sinaAuth cancel");

//如果取消授权,那么可以调到登录页面等

}

@Override

public void onWeiboException(WeiboException e) {

Log.e("LoginActivity", "sinaAuth exception :" + e.getMessage());

}

}

/**

* 该 Handler 配合 {@link RequestListener} 对应的回调来更新 UI。

*/

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case MSG_FETCH_TOKEN_SUCCESS:

// 显示 Token

// String date = new

// SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(

// new java.util.Date(mAccessToken.getExpiresTime()));

// String format =

// getString(R.string.weibosdk_demo_token_to_string_format_1);

// 获取tocken成功

break;

case MSG_FETCH_TOKEN_FAILED:

// Toast.makeText(WBAuthCodeActivity.this,

// R.string.weibosdk_demo_toast_obtain_token_failed,

// Toast.LENGTH_SHORT).show();

// 获取tocken失败

break;

default:

break;

}

};

};

/**

* 异步获取 Token。

*

* @param authCode

*            授权 Code,该 Code 是一次性的,只能被获取一次 Token

* @param appSecret

*            应用程序的 APP_SECRET,请务必妥善保管好自己的 APP_SECRET,

*            不要直接暴露在程序中,此处仅作为一个DEMO来演示。

*/

public void fetchTokenAsync(String authCode, String appSecret) {

/*

* LinkedHashMap requestParams = new

* LinkedHashMap();

* requestParams.put(WBConstants.AUTH_PARAMS_CLIENT_ID,

* Constants.APP_KEY);

* requestParams.put(WBConstants.AUTH_PARAMS_CLIENT_SECRET,

* appSecretConstantS.APP_SECRET);

* requestParams.put(WBConstants.AUTH_PARAMS_GRANT_TYPE,

* "authorization_code");

* requestParams.put(WBConstants.AUTH_PARAMS_CODE, authCode);

* requestParams.put(WBConstants.AUTH_PARAMS_REDIRECT_URL,

* Constants.REDIRECT_URL);

*/

WeiboParameters requestParams = new WeiboParameters();

requestParams.add(WBConstants.AUTH_PARAMS_CLIENT_ID, Constants.APP_KEY);

requestParams.add(WBConstants.AUTH_PARAMS_CLIENT_SECRET, appSecret);

requestParams.add(WBConstants.AUTH_PARAMS_GRANT_TYPE,

"authorization_code");

requestParams.add(WBConstants.AUTH_PARAMS_CODE, authCode);

requestParams.add(WBConstants.AUTH_PARAMS_REDIRECT_URL,

Constants.REDIRECT_URL);

/**

* 请注意: {@link RequestListener} 对应的回调是运行在后台线程中的, 因此,需要使用 Handler 来配合更新

* UI。

*/

AsyncWeiboRunner.request(OAUTH2_ACCESS_TOKEN_URL, requestParams,

"POST", new RequestListener() {

@Override

public void onComplete(String response) {

LogUtil.d(TAG, "get token Response: " + response);

Oauth2AccessToken token = Oauth2AccessToken

.parseAccessToken(response);

if (token != null && token.isSessionValid()) {

LogUtil.d(TAG, "Success! " + token.toString());

mAccessToken = token;

// 获取token成功,可以做出相应的处理

// 通知UI改变

mHandler.obtainMessage(MSG_FETCH_TOKEN_SUCCESS)

.sendToTarget();

@Override

public void onComplete4binary(

ByteArrayOutputStream responseOS) {

LogUtil.e(TAG, "onComplete4binary...");

mHandler.obtainMessage(MSG_FETCH_TOKEN_FAILED)

.sendToTarget();

}

@Override

public void onIOException(IOException e) {

LogUtil.e(TAG, "onIOException: " + e.getMessage());

mHandler.obtainMessage(MSG_FETCH_TOKEN_FAILED)

.sendToTarget();

}

@Override

public void onError(WeiboException e) {

LogUtil.e(TAG, "WeiboException: " + e.getMessage());

mHandler.obtainMessage(MSG_FETCH_TOKEN_FAILED)

.sendToTarget();

}

});

}

主要是改写complete相应的方法即可。handler主要是通知界面做出改变

UI Handler的参数调用问题的参数

/** 获取 Token 成功或失败的消息 */ private static final int MSG_FETCH_TOKEN_SUCCESS = 1; private static final int MSG_FETCH_TOKEN_FAILED = 2;

android 新浪微博第三方登录,Android的集成新浪微博第三方登录相关推荐

  1. android 程序白屏,Android冷启动白屏问题

    1. 冷启动与热启动 通常我们在使用某个应用程序时,都是点击桌面应用图标来启动该程序.你肯定或多或少的碰到过这种情况:应用启动的一刹那,手机会先白屏或者黑屏一段时间,然后再进入应用程序的主页,但是你退 ...

  2. android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录

    android使用新浪微博最新SDK进行第三方授权登录 工具:android-studio 新浪SDK版本:4.1 1Demo参考 下载官方SDK:https://github.com/sinawei ...

  3. 实现QQ、微信、新浪微博和百度第三方登录(Android Studio)

    实现QQ.微信.新浪微博和百度第三方登录(Android Studio) 前言: 对于大多数的APP都有第三方登录这个功能,自己也做过几次,最近又有一个新项目用到了第三方登录,所以特意总结了一下关于第 ...

  4. Android应用开发中,第三方集成新浪微博(sinaWeiboSDK)的过程记录

    作为一个android开发人员,不可避免的要学会使用和集成第三方API的能力 而新浪微博作为现在最主要的新闻速递媒体,使用十分普遍,并且提供了较为详细的API接入方法,故此选择集成sinaWeibiS ...

  5. android打不开ios分享微博,iOS集成新浪微博登录分享遇到的一些问题

    一.-canOpenURL: failed for URL: "weibosdk://" - error: "This app is not allowed to que ...

  6. Android集成ShareSDK第三方分享和登录

    本篇记录在Android平台上如何集成ShareSDK实现第三方登陆和分享,以及其中可能会遇到的坑. Mob官网 下载 如图选择你需要分享的平台: 集成 解压下载的文件,然后在ShareSDK for ...

  7. android 分享到微博客户端,Android APP集成新浪微博分享功能

    本文为大家分享了新浪微博分享功能集成,供大家参考,具体内容如下 直接导入weibosdkcore.jar:适用于只需要授权.分享.网络请求框架功能的项目. 无论使用哪一种方式,都需要先将demo中li ...

  8. android App 集成 facebook 第三方认证登录

    今天公司一个项目要集成第三方的认证登录,第一次做这种第三方登录,而且因为大陆访问不了 facebook,所以花了比较长的时间才实现功能.其中也有一些需要注意的地方,记录一下,也跟大家一起交流. 一.f ...

  9. Android集成Facebook第三方登录,全流程

    首次接触海外项目,开发环节与测试流程刚开始搞得一头雾水,历时两周终于把登录和支付调通了,特此记录下: 不过总结下来,与国内流程不同的点,主要是测试流程,需要专门的测试账号与测试权限才能测通 首先打开开 ...

  10. 踩坑!android端集成QQ第三方登录

    有时候在想,自己怎么能这么懒,几篇早就想写的博客,一直拖到一两个月后才着手开始写,说实话都有点忘记了,但还是记录一下吧,兴许以后用的到呢~ 回归正题,这次来记录一下我集成QQ三方登录的过程吧(Ps:a ...

最新文章

  1. 不试过你怎么知道?开博第一篇(本人菜鸟也,高手可以飘过)
  2. Python入门100题 | 第017题
  3. oracle10数据库链接失败,PLSQL Developer连接Oracle 10g或Oracle 11g失败
  4. 用JAVA开发网站,需要学哪些呢?
  5. RabbitMQ 构建高可靠集群架构
  6. html音频自动播放隐藏控制器,HTML5 音频回放/播放控制器
  7. 计算机科学与技术毕业生简历,计算机科学与技术专业应届毕业生简历范文
  8. Nginx配置HTTPS和HTTP
  9. 计算机网络课程设计实验报告
  10. 海康sip服务器地址协议,海康摄像头的GB28181的sip服务器+ZL流媒体+前台测试页面...
  11. pdfFactory Pro 不能被安装(AddPrinterDriver 失败)...找不到指定的模块
  12. 傅里叶变换公式推导(二)
  13. Separating Pebbles数学,暴力
  14. 免费素材库:mixkit
  15. 如何设置正确的dns服务器地址,dns服务器地址如何设置
  16. 计算机控制课设串级回路,华北电力大学过程计算机控制课设ddc串级回路pid闭环.docx...
  17. C++:this指针的简单理解
  18. LED背光驱动IC 支持32通道 PIN艾瓦特7039,7088
  19. Maven - 6、生命周期和插件详解
  20. 数学建模学习——回归分析

热门文章

  1. 经典网络建设方案案例
  2. java之简易生成彩色二维码实践
  3. 快手科技更新招股书:前11个月营收525亿元,引入10家基石投资者
  4. Java web 几种实现在网页页面里播放视频的 插件及方法
  5. 平面几何----三割线定理引理的证明
  6. 微信公众测试号推送天气(最近超火的小玩意)给女友一个满满的爱
  7. 防干扰继电器控制电路
  8. Arduino ESP8266利用定时器中断控制LED闪烁示例程序
  9. 三坐标检测之精密零件测量的恒温时间
  10. 深入理解Arduino下的ESP8266_Non-OS_SDK API① Non-OS SDK