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);
}