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.1private 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.3private 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

点赞 (0)赏分享 (0)

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

  1. android 微博 4.1sdk,Android新浪微博SDK分享功能接入

    集成前准备 1. 申请APP_KEY 第三方需要接入微博SDK必须在微博开放平台上对应用进行注册,并获取APP_KEY,添加 应用的授权回调页面(Redirect URI) 2. 注册应用程序的包名和 ...

  2. 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...

  3. android 随手记 第三方授权登录,获取资料,分享

    帖子原文URL: http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文 ...

  4. 以微博为例进行Oauth2进行第三方授权登录

    OAuth2.0:对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权. 流程: (A)用 ...

  5. 微博第三方登录 php,php 网站使用微博第三方授权登录

    2.创建应用,网站授权登录需要创建的类型为:微连接 - 网页应用. 3.拿到应用的 App Key 和 App Secret 5.可以现在微博官方提供的 sdk 包,也可以自己参考文档写 6.以下是我 ...

  6. 分别嵌入 新浪微博、QQ、微信 做第三方授权登录 获取到头像 昵称等信息

    下面提到的这三种 授权登录 是分别嵌入,不是 share sdk 或者友盟 其它的. 一.下载sdk 地址 1.新浪微博 新浪微博SDK 下载 2.QQ  QQ SDK 下载 3.微信 微信SDK 二 ...

  7. android 微博功能实现,Android SDK说明文档

    概述 微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程.并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的 ...

  8. android微博签名错误,Android 微博登录“sso package or sign error” 错误解决方案

    新版微博客户端升级功能,无线应用使用sso授权必须填写包名.签名.否则会遇到sso package or sign error的报错,SSO授权暂时只针对iOS及Android端. 如果在使用SSO授 ...

  9. 微博SDK第三方授权登陆

    第三方登陆大致流程 1.注册微博开发者账号 2.进入微博开放平台创建应用获取APP key 和APP Secret 3.给应用签名,获取MD5签名 4.在应用中嵌入代码 前三布直接略过,不懂的去看微博 ...

最新文章

  1. 喜欢把代码写一行的人_我最喜欢的代码行
  2. Netty 4.1 Getting Start (翻译) + Demo
  3. Struts2.5版本之后Tomcat启动报错问题
  4. OpenCV图像入门
  5. desktop docker 无法卸载_docker,生信人的福音!
  6. 软件测试工程师怎么样面试上好的公司?
  7. JavaSE笔记(0)JavaSE学习路线
  8. 使用微PE工具进行u盘重装系统
  9. 2018届华为网络技术大赛复赛组网(B)试题
  10. Python绘制图像plt与正余弦正切函数以及散点图DIY基本操作整理Matplotlib 教程
  11. 计算机专业软件工程的二本大学有哪些,软件工程专业二本大学排名哪个好?
  12. 斯坦福大学乔布斯演讲之后的感悟
  13. 科普类毕业论文文献包含哪些?
  14. 图像分类经典卷积神经网络—SENet论文翻译(中英文对照版)—Squeeze-and-Excitation Networks(挤压和激励网络)
  15. mysql官方系在教程_MySQL系列教程(四)
  16. 程序员来聊一聊信用卡(三)——信用卡的一些基本分类
  17. python中1到100怎么表示_python如何计算1到100的和(用for循环)
  18. 银行业灾备及业务连续性管理:从混沌走向清明
  19. 拉格朗日乘数求极值方法
  20. 一个游戏大量合服代表什么_浅谈滚服游戏如果实现一键合服

热门文章

  1. EBS R12: 通过FND_PRODUCT_INSTALLATIONS中字段STATUS确认安装使用了哪些产品(或模块)
  2. PHP反序列化原生类利用
  3. phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
  4. MBA书籍推荐:打造商业思维,看这一本书就够了
  5. SRC挖掘信息收集之JS文件中的秘密
  6. android9.0安装包更新,一加5官方安卓9.0稳定版固件rom系统升级更新包:第4版
  7. wifidog+authpuppy认证流程详解
  8. 【OpenStreetMap】任意城市道路数据下载(附带数据解释)
  9. SQL*Plus 系统变量之59 - VER[IFY]
  10. c++实验总结_史上最全场景文字检测资源合集(70篇重要论文 + 15个开源代码 + 176个实验结果 + 1305个统计信息)...