android 微博 登录,Android第三方登录之微博登录

1. 去新浪微博开放平台创建应用

新浪微博开放平台地址:

http://open.weibo.com/?sudaref=www.baidu.com&retcode=6102

2. 集成微博sdk

demo地址:

https://github.com/sinaweibosdk/weibo_android_sdk

集成文档地址:

https://github.com/sinaweibosdk/weibo_android_sdk/blob/master/%E6%96%B0%E6%96%87%E6%A1%A3/%E5%BE%AE%E5%8D%9ASDK%204.0%E6%96%87%E6%A1%A3.pdf

3. 获取授权

/**

* 新浪微博登录

*/

private void sinaLogin() {

// // 从 SharedPreferences 中读取上次已保存好 AccessToken 等信息,

// // 第一次启动本应用,AccessToken 不可用

// mAccessToken = AccessTokenKeeper.readAccessToken(this);

// if (mAccessToken.isSessionValid()) {

// updateTokenView(true);

// }

// 快速授权时,请不要传入 SCOPE,否则可能会授权不成功

mAuthInfo = new AuthInfo(this, ContentUtils.SINA_APP_ID, ContentUtils.REDIRECT_URL, ContentUtils.SCOPE);

mSsoHandler = new SsoHandler(this, mAuthInfo);

// SSO 授权, ALL IN ONE 如果手机安装了微博客户端则使用客户端授权,没有则进行网页授权

mSsoHandler.authorize(new AuthListener());

}

在清单文件中配置activity

4. 实现授权回调接口

/**

* 微博认证授权回调类。

* 1. SSO 授权时,需要在 {@link #onActivityResult} 中调用 {@link SsoHandler#authorizeCallBack} 后,

* 该回调才会被执行。

* 2. 非 SSO 授权时,当授权结束后,该回调就会被执行。

* 当授权成功后,请保存该 access_token、expires_in、uid 等信息到 SharedPreferences 中。

*/

class AuthListener implements WeiboAuthListener {

@Override

public void onComplete(final Bundle values) {

// 从 Bundle 中解析 Token

LoginActivity.this.runOnUiThread(new Runnable() {

@Override

public void run() {

mAccessToken = Oauth2AccessToken.parseAccessToken(values);

//从这里获取用户输入的 电话号码信息

String phoneNum = mAccessToken.getPhoneNum();

if (mAccessToken.isSessionValid()) {

// 显示 Token

// updateTokenView(false);

getUserInfo();

// 保存 Token 到 SharedPreferences

// AccessTokenKeeper.writeAccessToken(LoginActivity.this, mAccessToken);

} else {

// 以下几种情况,您会收到 Code:

// 1. 当您未在平台上注册的应用程序的包名与签名时;

// 2. 当您注册的应用程序包名与签名不正确时;

// 3. 当您在平台上注册的包名和签名与您当前测试的应用的包名和签名不匹配时。

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

String message = "null";

if (!TextUtils.isEmpty(code)) {

message = message + "\nObtained the code: " + code;

}

Toast.makeText(LoginActivity.this, message, Toast.LENGTH_LONG).show();

}

}

});

}

@Override

public void onCancel() {

}

@Override

public void onWeiboException(WeiboException e) {

KKKKK.print("Auth exception : " + e.getMessage());

}

}

5. 获取用户信息

/**

* 获取微博用户个人信息

*/

private void getUserInfo() {

//获取用户信息接口

mUsersAPI = new UsersAPI(LoginActivity.this, ContentUtils.SINA_APP_ID, mAccessToken);

//调用接口

long uid = Long.parseLong(mAccessToken.getUid());

mUsersAPI.show(uid, new RequestListener() {

@Override

public void onComplete(String s) {

if (!TextUtils.isEmpty(s)) {

//调用User#parse将JSON串解析成User对象

User user = User.parse(s);

otherLogin(ContentUtils.SINA_LOGIN, user.id, user.screen_name, user.location, user.avatar_hd, user.gender == "m" ? "1" : "0");

}

}

@Override

public void onWeiboException(WeiboException e) {

}

});

}

大神博客:

http://blog.csdn.net/speverriver/article/details/53707632

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值