android使用新浪微博最新SDK4.1进行第三方授权登录
来源:互联网 发布:mp8播放软件下载 编辑:程序博客网 时间:2024/06/04 19:33
android使用新浪微博最新SDK进行第三方授权登录
工具:android-studio
新浪SDK版本:4.1
1Demo参考
下载官方SDK:https://github.com/sinaweibosdk/weibo_android_sdk
gitHub项目集成到android-studio请参考博客:
用android-studio打开weibosdkdemo(同步了github的项目后,可以关闭该项目,重新打开只有weibosdkdemo的文件夹)
按Message去下载支持的gradle版本即可运行
2 集成
1 在project的build.gradle中,添加库
allprojects { repositories { google() jcenter() maven { url "https://dl.bintray.com/thelasterstar/maven/" } }}
2 在app的build.gradle中,添加依赖
dependencies { ... compile 'com.sina.weibo.sdk:core:4.1.0:openDefaultRelease@aar' }
3 新建一个LoginActivity的Activity类
3.1
private void initWeiBoSDK() { //新浪微博初始化,对应的参数分别是app_key,回调地址,和Scope权限(这里默认使用demo中的) WbSdk.install(this, new AuthInfo(this, "app_key", "回调地址", "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," + "follow_app_official_microblog," + "invitation_write")); }
3.2
//创建SsoHandler对象mSsoHandler = new SsoHandler(LoginActivity.this);
3.3
private void loginIn() { mSsoHandler.authorize(new SelfWbAuthListener()); }
mSsoHandler.authorize:若安装了客户端,则通过客户端授权,若没有安装,则通过WEB方式授权(建议移动开发使用这种模式)
mSsoHandler.authorizeWeb:只通过web方式授权
mSsoHandler.authorizeClientSso:只通过新浪微博客户端授权
3.4 核心
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); Log.i("获取mAccessToken成功","获取mAccessToken成功"); Log.i("mAccessToken为:", String.valueOf(mAccessToken)); } } }); } @Override public void cancel() { Log.i("取消授权","取消授权"); } @Override public void onFailure(WbConnectErrorMessage errorMessage) { Log.i("授权失败","授权失败"); } }
3.5要获得回传信息必须要重写该方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //sina login if(mSsoHandler!=null){ mSsoHandler.authorizeCallBack(requestCode,resultCode,data); } }
完整代码参考:
import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.sina.weibo.sdk.WbSdk;import com.sina.weibo.sdk.auth.AuthInfo;import com.sina.weibo.sdk.auth.Oauth2AccessToken;import com.sina.weibo.sdk.auth.WbConnectErrorMessage;import com.sina.weibo.sdk.auth.sso.SsoHandler;public class LoginActivity extends AppCompatActivity { private SsoHandler mSsoHandler; private Oauth2AccessToken mAccessToken; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initWeiBoSDK(); mSsoHandler = new SsoHandler(LoginActivity.this); loginIn(); } /** * SSO授权方式获取权限 */ private void initWeiBoSDK() { //新浪微博初始化,对应的参数分别是app_key,回调地址,和权限 WbSdk.install(this, new AuthInfo(this, "你的app_key", "https://api.weibo.com/oauth2/default.html", "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," + "follow_app_official_microblog," + "invitation_write")); } private void loginIn() { 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); Log.i("获取mAccessToken成功","获取mAccessToken成功"); Log.i("mAccessToken为:", String.valueOf(mAccessToken)); } } }); } @Override public void cancel() { Log.i("取消授权","取消授权"); } @Override public void onFailure(WbConnectErrorMessage errorMessage) { Log.i("授权失败","授权失败"); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //sina login if(mSsoHandler!=null){ mSsoHandler.authorizeCallBack(requestCode,resultCode,data); } }}
附录:
新浪微博android4.1SDK参考文档:
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.1%E6%96%87%E6%A1%A3.pdf
OAuth授权具体流程(新浪微博非第三方SDK集成授权)参考:
http://blog.csdn.net/weixin_37577039/article/details/78632112
- android使用新浪微博最新SDK4.1进行第三方授权登录
- Android 新浪微博第三方登录
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- android 第三方应用-新浪微博授权
- Android的集成新浪微博第三方登录
- Android新浪微博第三方登录的一些问题
- 第三方插件使用以及qq,新浪微博登录
- Android应用第三方授权登录 之 【腾讯微博】
- 第三方应用使用微博登录授权功能注意事项
- Android第三方授权分享在新浪微博授权提示:文件不存在 C8998 的解决方法
- Android开发全程记录(九)——使用新浪微博登录第三方应用
- 新浪微博第三方登录体验
- 新浪微博的第三方登录
- 新浪微博第三方登录
- 第三方登录之新浪微博
- 新浪微博第三方登录有感
- Python基础4(new版)
- 在Linux上使用Jenkins持续集成JavaWeb项目
- jvm 相关电子书
- 【OpenCV入门教程之十四】OpenCV霍夫变换:霍夫线变换,霍夫圆变换合辑
- C++ 结构体细节 c++primer plus例子
- android使用新浪微博最新SDK4.1进行第三方授权登录
- windows中的小问题
- c++ 仿函数
- JVM性能优化:垃圾收集
- java笔记7继承
- MySQL主主复制原理及搭建
- PreparedStatement和createStaement的区别
- as2 简单处理待机
- gost