Java源码示例:com.sina.weibo.sdk.auth.WbAuthListener

示例1
public void login(Activity activity, final OnLoginStateListener listener) {
    if (listener == null)
        return;
    mOnLoginListener = listener;
    justAuth(activity, new WbAuthListener() {
        @Override
        public void onSuccess(Oauth2AccessToken oauth2AccessToken) {
            getUserInfo(oauth2AccessToken);
        }

        @Override
        public void cancel() {
            listener.onState(null, LoginResult.cancelOf());
        }

        @Override
        public void onFailure(WbConnectErrorMessage msg) {
            listener.onState(null, LoginResult.failOf(SocialError.make(SocialError.CODE_SDK_ERROR, TAG + "#login#connect error," + msg.getErrorCode() + " " + msg.getErrorMessage())));
        }
    });
}
 
示例2
private void authorize(int requestCode, WbAuthListener listener, BaseHandler.AuthType authType) {
    this.resetIntentFillData();
    if (listener == null) {
        throw new RuntimeException("please set auth listener");
    } else {
        this.authListener = listener;
        if (authType == BaseHandler.AuthType.WebOnly) {
            if (listener != null) {
                this.startWebAuth();
            }

        } else {
            boolean onlyClientSso = false;
            if (authType == BaseHandler.AuthType.SsoOnly) {
                onlyClientSso = true;
            }

            if (this.isWbAppInstalled()) {
                this.startClientAuth(requestCode);
            } else if (onlyClientSso) {
                this.authListener.onFailure(new WbConnectErrorMessage());
            } else {
                this.startWebAuth();
            }

        }
    }
}
 
示例3
private void initLoginListener() {
    wbAuthCallback = new WbAuthListener() {
        @Override
        public void onSuccess(Oauth2AccessToken oauth2AccessToken) {
            if (oauth2AccessToken.isSessionValid()) {
                loginResult = oauth2AccessToken;
                AccessTokenKeeper.writeAccessToken(activity, oauth2AccessToken);
                getUserInfo(oauth2AccessToken);
            } else {
                handler.sendEmptyMessage(GET_INFO_ERROR);
            }
        }

        @Override
        public void cancel() {
            if (loginCallback != null && activity != null) {
                loginCallback.socialError(activity.getString(R.string.social_cancel));
            }
        }

        @Override
        public void onFailure(WbConnectErrorMessage error) {
            if (loginCallback != null) {
                loginCallback.socialError(error.getErrorMessage());
            }
        }
    };
}
 
示例4
public void justAuth(final Activity activity, final WbAuthListener listener) {
    Oauth2AccessToken token = AccessToken.getToken(activity, mLoginTarget, Oauth2AccessToken.class);
    if (token != null && token.isSessionValid() && token.getExpiresTime() > System.currentTimeMillis()) {
        listener.onSuccess(token);
    } else {
        AccessToken.clearToken(activity, Target.LOGIN_WB);
        mSsoHandler.authorize(new WbAuthListener() {
            @Override
            public void onSuccess(Oauth2AccessToken oauth2AccessToken) {
                oauth2AccessToken.setBundle(null);
                SocialUtil.json("test", oauth2AccessToken.toString());
                AccessToken.saveToken(activity, mLoginTarget, oauth2AccessToken);
                listener.onSuccess(oauth2AccessToken);
            }

            @Override
            public void cancel() {
                listener.cancel();
            }

            @Override
            public void onFailure(WbConnectErrorMessage wbConnectErrorMessage) {
                listener.onFailure(wbConnectErrorMessage);
            }
        });
    }
}
 
示例5
public void authorize(WbAuthListener listener) {
    this.authorize('胍', listener, BaseHandler.AuthType.ALL);
}
 
示例6
public void authorizeClientSso(WbAuthListener listener) {
    this.authorize('胍', listener, BaseHandler.AuthType.SsoOnly);
}
 
示例7
public void authorizeWeb(WbAuthListener listener) {
    this.authorize('胍', listener, BaseHandler.AuthType.WebOnly);
}