基于北邮人论坛新版authorization、API 编写的Android平台SDK。为第三方开发者应用开发提供了简单易用的解决方案,第三方开发者无需了解OAuth2.0的复杂机制即可完成论坛授权,并提供开放API接口的服务
为OAuth与API调用提供了简单的示例,提供了
- APK 安装包
- 源代码工程文件,请务必使用提供的debug keystore签名,否则会导致授权失败!
- usage 部分示例了API 调用的简单步骤。详细API接口函数请查看WIKI
- API 元数据(write by dss886) 在cn.byr.bbs.sdk.api.model 或者repository中APImodel下提供
repositories {
jcenter()
}
dependencies {
compile 'com.github.paper777:BBSSDK:1.0@aar'
// or
// compile(group: 'com.github.paper777', name: 'BBSSDK', version: '1.0', ext: 'aar')
}
- 在 release 目录下下载 .jar 文件
- 将 jar 文件放入工程 libs 目录中并将其引入工程
- 克隆这个仓库
- 将工程作为librarya引入您的工程
- 将BBSSDKDEMO/build.gradle 中的签名文件替换成自己的 storeFile file('path/to/bbsSDKkeystore_debug')
=======
参数 | 含义 |
---|---|
AppKey(client_id) | 分配给每个第三方应用的 app key。用于鉴权身份,显示来源等功能。 |
RedirectURI | 第三方应用授权回调页面。这里建议使用默认回调页http://bbs.byr.cn/Oauth2/callback |
Scope | 授权项目,用户在新OAuth2.0授权页中有权利选择赋予应用的功能。 |
AccessToken | 表示用户身份的 token,用于 API 的调用。 |
|
public interface Constants {
/** 填写自己的 APP_KEY */
public static final String APP_KEY = "XXXXXXX";
/**
* 应用的回调页。
* 建议使用默认回调页:http://bbs.byr.cn/Oauth2/callback
*/
public static final String REDIRECT_URL = "http://bbs.byr.cn/Oauth2/callback";
/**
* 应用对应的权限,设置成空即获取用户的详细信息。
* 多个项目请用逗号隔开(不要有空格!!!)
*/
public static final String SCOPE = ""; // "article,mail,favor,refer,blacklis";
}
mBBSAuth = new BBSAuth(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
class AuthListener implements BBSAuthListener {
@Override
public void onComplete(Bundle values) {
// 从 Bundle 中解析 Token
mAccessToken = Oauth2AccessToken.parseAccessToken(values);
if (mAccessToken.isSessionValid()) {
// TODO maybe to store the token informations
} else {
// TODO actually won't happen
}
}
@Override
public void onCancel() {
// TODO user canceled the authorization
}
@Override
public void onException(BBSException e) {
// TODO exception handle
}
}
mBBSAuth.authorize(new AuthListener());
确保在获取了TOKEN之后调用API,否则无法使用 详细API接口请查看WIKI
/** mAccessToken 为Oauth2AccessToken类
不能为空*/
mUserApi = new UserApi(mAccessToken);
###2、实现RequestListener接口
private RequestListener mListener = new RequestListener() {
@Override
public void onComplete(String response) {
if (!TextUtils.isEmpty(response)) {
/** 解析返回数据 */
User user = User.parse(response);
}
}
@Override
public void onException(BBSException e) {
/** 异常处理 */
LogUtil.e(TAG, e.getMessage());
}
};
/** 获取授权用户信息 */
mUserApi.show(mListener);
如有错误、bug等请移步这里,欢迎pull request!
Special Thanks to @dss886 for contributions to this projects
大江东去,浪淘尽,千古风流人物。
故垒西边,人道是,三国周郎赤壁。
乱石穿空,惊涛拍岸,卷起千堆雪。
江山如画,一时多少豪杰。
遥想公瑾当年,小乔初嫁了,雄姿英发。
羽扇纶巾,谈笑间,樯橹灰飞烟灭。
故国神游,多情应笑我,早生华发。
人生如梦,一尊还酹江月。