Sina Weibo SDK
Sina Weibo SDK
SDK功能特性(3.0)
1.关系升级
可以获取同样使用该应用的好友,可额外获取30%的关系链(未使用新版SDK3.0的应用,只能获取同授权该应用的好友关系,这点与facebook和twitter的授权机制相同)
2.授权升级
手机中安装了新浪微博使用客户端登录,仅一步授权页面,中间没有加载过程;没有安装的,使用H5页授权。
3.SSO授权
4.下载推荐
5.微博原生分享
提供原生、H5、API分享方式可供选择
6.LinkCard解析
什么是LinkCard:在微博消息流内,分享一条链接,该链接将解析为包含一个对象数据的特殊短链,且该对象数据可以在微博消息流内显示并交互,这种形态就是微博消息流LinkCard解析。
7.社会化组件
微博关注和评论功能
8.短信注册服务
9.特殊接口权限
- 用户信息
- 用户、内容关系
- 用户内容
- 授权时效
SDK接入流程
网站配置
1.填写基本信息后,并配置授权回调链接后,可以使用授权登录
2.添加测试账户后,可正常调用Sina Weibo API
3.完善图1中基本信息,app上国内主流应用市场,通过审核后,非测试用户也可以正常使用Sina Weibo API功能。
4.调用API错误码,参考链接Error Code
5.常见问题
代码集成
Step1.
build.gradle(project)中加入:
maven { url "https://dl.bintray.com/thelasterstar/maven/" }
Step2.
build.gradle(module)中加入:
compile 'com.sina.weibo.sdk:core:4.1.4:openDefaultRelease@aar'
Step3.
授权前先调用:
WbSdk.install(App.getContext(), new AuthInfo(App.getContext(), Constants.WB_APP_KEY, Constants.WB_REDIRECT_URL, Constants.WB_SCOPE));
3个键值定义:
public static final String WB_APP_KEY = "xxxxx";
/**
* 当前 DEMO 应用的回调页,第三方应用可以使用自己的回调页。
*
* <p>
* 注:关于授权回调页对移动客户端应用来说对用户是不可见的,所以定义为何种形式都将不影响,
* 但是没有定义将无法使用 SDK 认证登录。
* 建议使用默认回调页:https://api.weibo.com/oauth2/default.html
* </p>
*/
public static final String WB_REDIRECT_URL = "http://www.xxxxx.net";
/**
* Scope 是 OAuth2.0 授权机制中 authorize 接口的一个参数。通过 Scope,平台将开放更多的微博
* 核心功能给开发者,同时也加强用户隐私保护,提升了用户体验,用户在新 OAuth2.0 授权页中有权利
* 选择赋予应用的功能。
*
* 我们通过新浪微博开放平台-->管理中心-->我的应用-->接口管理处,能看到我们目前已有哪些接口的
* 使用权限,高级权限需要进行申请。
*
* 目前 Scope 支持传入多个 Scope 权限,用逗号分隔。
*
* 有关哪些 OpenAPI 需要权限申请,请查看:http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI
* 关于 Scope 概念及注意事项,请查看:http://open.weibo.com/wiki/Scope
*/
// public static final String WB_SCOPE = "email" +
// ",direct_messages_read" +
// ",direct_messages_write" +
// ",friendships_groups_read" +
// ",friendships_groups_write" +
// ",statuses_to_me_read," +
// "follow_app_official_microblog" +
// ",invitation_write";
public static final String WB_SCOPE = "all";
登录
登录代码接入
/** 封装了 "access_token","expires_in","refresh_token",并提供了他们的管理功能 */
private Oauth2AccessToken mAccessToken;
/** 注意:SsoHandler 仅当 SDK 支持 SSO 时有效 */
private SsoHandler mSsoHandler;
//登录代码
mSsoHandler = new SsoHandler(activity);
mSsoHandler.authorize(new SelfWbAuthLister());
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(mSsoHandler != null){
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
//授权回调代码
private class SelfWbAuthLister implements WbAuthListener {
@Override
public void onSuccess(Oauth2AccessToken oauth2AccessToken) {
//授权成功
if(activity == null) return;
activity.runOnUiThread(() -> {
mAccessToken = oauth2AccessToken;
if(mAccessToken.isSessionValid()){
//保存SP到token
AccessTokenKeeper.writeAccessToken(App.getContext(), mAccessToken);
}
});
}
@Override
public void cancel() {
//取消授权
}
@Override
public void onFailure(WbConnectErrorMessage wbConnectErrorMessage) {
//授权失败
}
}
//退出登录
AccessTokenKeeper.clear(App.getContext());
API接口调用(获取个人资料、…)
参考链接微博API
Scope
参考链接Scope授权范围