# 1. 集成SDK

将下载的baidu-oauth-sdk-android-release-XXX.zip文件解压后的baidu-oauth-sdk-XXX.aar添加到工程

# 2. 初始化SDK

AuthInfo authInfo = new AuthInfo({context}, {appKey}, {redirectUrl}, {scope});
BdOauthSdk.init(authInfo);

# 3. 申请授权

bdSsoHandler = new BdSsoHandler(MainActivity.this);
BdOauthDTO bdOauthDTO = new BdOauthDTO(); 
// BdOauthDTO.OAUTH_TYPE_BOTH  若安装了百度系APP调起SSO授权,否则调起web授权
// BdOauthDTO.OAUTH_TYPE_SSO  若安装了百度系APP调起SSO授权,否则返回异常
// BdOauthDTO.OAUTH_TYPE_WEB  调起web授权
bdOauthDTO.oauthType = BdOauthDTO.OAUTH_TYPE_BOTH;
// 重定向后会携带state参数,建议开发者利用state参数来防止CSRF攻击
bdOauthDTO.state = UUID.randomUUID().toString();
bdSsoHandler.authorize(bdOauthDTO, new BdOauthCallback() {
    @Override
    public void onSuccess(BdOauthResult result) {
        ViewUtility.showToast("code = " + result.getCode() + " state = " + result.getState());

    }

    @Override
    public void onFailure(BdOauthResult result) {
        ViewUtility.showToast("result code = " + result.getResultCode() + " msg = " + result.getResultMsg());

    }
});

code 换取 access_token 参考 code获取授权access_token

# 4. 处理回调

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   //  因为sdk通过startActivityForResult启动授权页面,所以需要产品线在调用activity接收返回
   if (bdSsoHandler != null) {
       bdSsoHandler.authorizeCallBack(requestCode, resultCode, data);
   }
}

# 5. 错误码列表

错误码 含义
0 成功
-201 其他错误
-202 参数错误
-203 网络异常
-204 服务返回的异常
-205 用户取消
-206 SDK未初始化、初始化失败
-207 没有安装百度系app
-208 百度系app版本号太低
Last Updated: 1/22/2024, 2:11:54 PM