android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录
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进行第三方授权登录相关推荐
- android 微博 4.1sdk,Android新浪微博SDK分享功能接入
集成前准备 1. 申请APP_KEY 第三方需要接入微博SDK必须在微博开放平台上对应用进行注册,并获取APP_KEY,添加 应用的授权回调页面(Redirect URI) 2. 注册应用程序的包名和 ...
- 【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...
- android 随手记 第三方授权登录,获取资料,分享
帖子原文URL: http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文 ...
- 以微博为例进行Oauth2进行第三方授权登录
OAuth2.0:对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权. 流程: (A)用 ...
- 微博第三方登录 php,php 网站使用微博第三方授权登录
2.创建应用,网站授权登录需要创建的类型为:微连接 - 网页应用. 3.拿到应用的 App Key 和 App Secret 5.可以现在微博官方提供的 sdk 包,也可以自己参考文档写 6.以下是我 ...
- 分别嵌入 新浪微博、QQ、微信 做第三方授权登录 获取到头像 昵称等信息
下面提到的这三种 授权登录 是分别嵌入,不是 share sdk 或者友盟 其它的. 一.下载sdk 地址 1.新浪微博 新浪微博SDK 下载 2.QQ QQ SDK 下载 3.微信 微信SDK 二 ...
- android 微博功能实现,Android SDK说明文档
概述 微博Android平台SDK为第三方微博应用提供了文档易用的微博API调用服务,使第三方客户端无需了解复杂的验证,API调用过程.并可以实现分享到微博的功能,可以分享文字,或者多媒体信息到内置的 ...
- android微博签名错误,Android 微博登录“sso package or sign error” 错误解决方案
新版微博客户端升级功能,无线应用使用sso授权必须填写包名.签名.否则会遇到sso package or sign error的报错,SSO授权暂时只针对iOS及Android端. 如果在使用SSO授 ...
- 微博SDK第三方授权登陆
第三方登陆大致流程 1.注册微博开发者账号 2.进入微博开放平台创建应用获取APP key 和APP Secret 3.给应用签名,获取MD5签名 4.在应用中嵌入代码 前三布直接略过,不懂的去看微博 ...
最新文章
- 喜欢把代码写一行的人_我最喜欢的代码行
- Netty 4.1 Getting Start (翻译) + Demo
- Struts2.5版本之后Tomcat启动报错问题
- OpenCV图像入门
- desktop docker 无法卸载_docker,生信人的福音!
- 软件测试工程师怎么样面试上好的公司?
- JavaSE笔记(0)JavaSE学习路线
- 使用微PE工具进行u盘重装系统
- 2018届华为网络技术大赛复赛组网(B)试题
- Python绘制图像plt与正余弦正切函数以及散点图DIY基本操作整理Matplotlib 教程
- 计算机专业软件工程的二本大学有哪些,软件工程专业二本大学排名哪个好?
- 斯坦福大学乔布斯演讲之后的感悟
- 科普类毕业论文文献包含哪些?
- 图像分类经典卷积神经网络—SENet论文翻译(中英文对照版)—Squeeze-and-Excitation Networks(挤压和激励网络)
- mysql官方系在教程_MySQL系列教程(四)
- 程序员来聊一聊信用卡(三)——信用卡的一些基本分类
- python中1到100怎么表示_python如何计算1到100的和(用for循环)
- 银行业灾备及业务连续性管理:从混沌走向清明
- 拉格朗日乘数求极值方法
- 一个游戏大量合服代表什么_浅谈滚服游戏如果实现一键合服
热门文章
- EBS R12: 通过FND_PRODUCT_INSTALLATIONS中字段STATUS确认安装使用了哪些产品(或模块)
- PHP反序列化原生类利用
- phpmyadmin没有接收到要导入的数据.可能是文件名没有提交,也可能是文件大小超出 PHP 限制.
- MBA书籍推荐:打造商业思维,看这一本书就够了
- SRC挖掘信息收集之JS文件中的秘密
- android9.0安装包更新,一加5官方安卓9.0稳定版固件rom系统升级更新包:第4版
- wifidog+authpuppy认证流程详解
- 【OpenStreetMap】任意城市道路数据下载(附带数据解释)
- SQL*Plus 系统变量之59 - VER[IFY]
- c++实验总结_史上最全场景文字检测资源合集(70篇重要论文 + 15个开源代码 + 176个实验结果 + 1305个统计信息)...