集成QQ登录:点击查看
集成微信登录:点击查看
QQ、微信、新浪微博登录,demo代码下载
http://download.csdn.net/detail/pkandroid/9903796
github地址 进入
https://github.com/HYVincent/Login
新浪微博的SDK竟然更新了,上一次弄这玩意儿感觉一点不友好啊,哎。。。。
新浪微博SDK放在了GitHub上,地址:
https://github.com/sinaweibosdk/weibo_android_sdk
首先集成SDK:
在项目的build.gradle中添加:
maven { url "https://dl.bintray.com/thelasterstar/maven/" }//新浪微博SDK
然后在app木块的build.gradle中添加:
compile 'com.sina.weibo.sdk:core:2.0.3:openDefaultRelease@aar'
也可以导入aar文件方式集成,具体查看GitHub上的说明..
WeiBoSDK初始化
在自定义Application类中初始化weiboSDK,
//新浪微博初始化,对应的参数分别是app_key,回调地址,和权限
private void initWebSDK() {
WbSdk.install(this,new AuthInfo(this, Config.APP_KEY_SINA, Config.REDIRECT_URL,
Config.SCOPE));
}
授权 LoginActivity.java
/**
* description :登录页面
* project name:CCloud
* author : Vincent
* creation date: 2017/4/24 21:33
*
* @version 1.0
*/
public class LoginActivity extends BaseActivity implements ILoginView.View {
...
.....
/**
* 新浪微博
*/
private SsoHandler mSsoHandler;
/** 封装了 "access_token","expires_in","refresh_token",并提供了他们的管理功能 */
private Oauth2AccessToken mAccessToken;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ButterKnife.bind(this);
......
...........
//新浪微博
mSsoHandler = new SsoHandler(LoginActivity.this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
...
....
//sina login
if(mSsoHandler!=null){
mSsoHandler.authorizeCallBack(requestCode,resultCode,data);
}
}
@OnClick({R.id.login_tv_register, R.id.login_btn_go, R.id.login_tv_forget_password,R.id.iv_other_login_qq,R.id.iv_other_login_sina,R.id.iv_other_login_wx})
public void onViewClicked(View view) {
switch (view.getId()) {
..........
...........
case R.id.iv_other_login_sina:
loginToSina();
break;
...
.......
}
}
//吊起新浪微博客户端授权,如果未安装这使用web授权
private void loginToSina() {
//授权方式有三种,第一种对客户端授权 第二种对Web短授权,第三种结合前两中方式
mSsoHandler.authorize(new SelfWbAuthListener());
}
private class SelfWbAuthListener implements com.sina.weibo.sdk.auth.WbAuthListener{
@Override
public void onSuccess(final Oauth2AccessToken token) {
runOnUiThread(new Runnable() {
@Override
public void run() {
mAccessToken = token;
if (mAccessToken.isSessionValid()) {
// 显示 Token
// updateTokenView(false);
// 保存 Token 到 SharedPreferences
// AccessTokenKeeper.writeAccessToken(LoginActivity.this, mAccessToken);
showMsg(1,"授权成功");
//获取个人资料
//https://api.weibo.com/2/users/show.json
OkHttpUtils.get()
.url("https://api.weibo.com/2/users/show.json")
.addParams("access_token",mAccessToken.getToken())
.addParams("uid",mAccessToken.getUid())
.build()
.execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {
ViseLog.d("获取失败:"+e.getMessage());
e.printStackTrace();
}
@Override
public void onResponse(String response, int id) {
ViseLog.d("response:"+response);
}
});
}
}
});
}
@Override
public void cancel() {
showMsg(1,"取消授权");
}
@Override
public void onFailure(WbConnectErrorMessage errorMessage) {
Toast.makeText(LoginActivity.this, errorMessage.getErrorMessage(), Toast.LENGTH_LONG).show();
}
}
......
.....
......
}
授权成功了,新版的微博SDK看起来比以前的文档提升了几个档次啊,我的应用未通过审核,获取个人资料一直是403,可能被拒绝访问吧,等通过审核再试试。。。
—————————————-2017年6月12日16:28:26———————————————-
审核通过,数据获取成功,