package ezy.sdk3rd.social.platforms.weibo; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.util.Log; import com.sina.weibo.sdk.auth.AuthInfo; import com.sina.weibo.sdk.auth.Oauth2AccessToken; import com.sina.weibo.sdk.auth.WeiboAuthListener; import com.sina.weibo.sdk.auth.sso.SsoHandler; import com.sina.weibo.sdk.exception.WeiboException; import ezy.sdk3rd.social.authorize.IAuthorize; import ezy.sdk3rd.social.sdk.OnCallback; import ezy.sdk3rd.social.sdk.Platform; import ezy.sdk3rd.social.sdk.ResultCode; /** * Created by ezy on 17/3/18. */ public class WBAuth implements IAuthorize { public static final String TAG = "ezy.sdk3rd.weibo.auth"; Activity mActivity; Platform mPlatform; SsoHandler mApi; WBAuth(Activity activity, Platform platform) { mActivity = activity; mPlatform = platform; mApi = new SsoHandler(mActivity, new AuthInfo(mActivity, platform.getAppId(), platform.extra("redirectUrl"), "all")); } @Override public void authorize(@NonNull final OnCallback<String> callback) { callback.onStarted(mActivity); mApi.authorize(new WeiboAuthListener() { @Override public void onComplete(Bundle bundle) { Log.e(TAG, bundle.toString()); Oauth2AccessToken token = Oauth2AccessToken.parseAccessToken(bundle); if (token.isSessionValid()) { callback.onSucceed(mActivity, "token|" + token.getUid() + "|" + token.getToken()); } else { String code = bundle.getString("code"); callback.onSucceed(mActivity, "code|" + code); } callback.onCompleted(mActivity); } @Override public void onWeiboException(WeiboException e) { Log.e(TAG, e.getMessage()); callback.onFailed(mActivity, ResultCode.RESULT_FAILED, e.getMessage()); } @Override public void onCancel() { Log.e(TAG, "用户取消了登录"); callback.onFailed(mActivity, ResultCode.RESULT_CANCELLED, "用户取消了登录"); } }); } @Override public void onResult(int requestCode, int resultCode, Intent data) { if (mApi != null) { mApi.authorizeCallBack(requestCode, resultCode, data); } } }