android 腾讯微博的auth认证中问题

腾讯微博需要的包

       1:AndroidSDK

       2:AndroidSDKComponent

       3:出现的问题时当auth 认证的时候;onAuthPassed不执行问题;

       4:因为在客户端没有安装腾讯微博客户端的时候会进入Authorize(腾讯微博sdk 的Activity);

       5:authorize中有在其webview 处理完认证的时候没有进行回调;

       6:处理方法是Authorize加回调;按照代码2和代码3修改即可

(代码1)
    public void doAuth() {

        if(islogin()){
            authOnComplete(accessToken, "");
            return;
        }
        final Context context = mContext.getApplicationContext();
        AuthHelper.register(mContext, appid, app_secket, new OnAuthListener() {
            @Override
            public void onWeiBoNotInstalled() {
//                Toast.makeText(mContext, "onWeiBoNotInstalled", 1000)
//                        .show();
                AuthHelper.unregister(mContext);
                
                Intent i = new Intent(mContext,Authorize.class);
                mContext.startActivity(i);
            }

            @Override
            public void onWeiboVersionMisMatch() {
//                Toast.makeText(mContext, "onWeiboVersionMisMatch",
//                        1000).show();
                Intent i = new Intent(mContext,Authorize.class);
                mContext.startActivity(i);
            }

            @Override
            public void onAuthFail(int result, String err) {
                Toast.makeText(mContext, "验证失败",1000).show();
            }

            @Override
            public void onAuthPassed(String name, WeiboToken token) {
//                Toast.makeText(mContext, "passed", 1000).show();
                
                
                Util.saveSharePersistent(context, "ACCESS_TOKEN", token.accessToken);
                Util.saveSharePersistent(context, "EXPIRES_IN", String.valueOf(token.expiresIn));
                Util.saveSharePersistent(context, "OPEN_ID", token.openID);
//                Util.saveSharePersistent(context, "OPEN_KEY", token.omasKey);
                Util.saveSharePersistent(context, "REFRESH_TOKEN", "");
//                Util.saveSharePersistent(context, "NAME", name);
//                Util.saveSharePersistent(context, "NICK", name);
                Util.saveSharePersistent(context, "CLIENT_ID", Util.getConfig().getProperty("APP_KEY"));
                Util.saveSharePersistent(context, "AUTHORIZETIME",
                        String.valueOf(System.currentTimeMillis() / 1000l));
                accessToken=token.accessToken;
                authOnComplete(accessToken, "");
                }
            });

            AuthHelper.auth(mContext, "");
    }
   

    代码2

Authorize类

    public void jumpResultParser(String result) {

        String resultParam = result.split("#")[1];
        String params[] = resultParam.split("&");
        String accessToken = params[0].split("=")[1];
        String expiresIn = params[1].split("=")[1];
        String openid = params[2].split("=")[1];
        String openkey = params[3].split("=")[1];
        String refreshToken = params[4].split("=")[1];
        String state = params[5].split("=")[1];
        String name = params[6].split("=")[1];
        String nick = params[7].split("=")[1];
        Context context = this.getApplicationContext();
        if (accessToken != null && !"".equals(accessToken)) {
            
            Util.saveSharePersistent(context, "ACCESS_TOKEN", accessToken);
            Util.saveSharePersistent(context, "EXPIRES_IN", expiresIn);// accesstoken过期时间,以返回的时间的准,单位为秒,注意过期时提醒用户重新授权
            Util.saveSharePersistent(context, "OPEN_ID", openid);
            Util.saveSharePersistent(context, "OPEN_KEY", openkey);
            Util.saveSharePersistent(context, "REFRESH_TOKEN", refreshToken);
            Util.saveSharePersistent(context, "NAME", name);
            Util.saveSharePersistent(context, "NICK", nick);
            Util.saveSharePersistent(context, "CLIENT_ID", clientId);
            Util.saveSharePersistent(context, "AUTHORIZETIME",
                    String.valueOf(System.currentTimeMillis() / 1000l));
            
            WeiboToken token = new WeiboToken();
            token.accessToken = accessToken;
            token.expiresIn = Long.valueOf(expiresIn);
            token.refreshToken = refreshToken;
            token.openID = openid;
            AuthHelper.listener.onAuthPassed(name, token);
            this.finish();
            isShow = true;
        }
    }

 代码3

AuthHelper类

    public static OnAuthListener listener;

 

posted on 2014-12-15 10:29  harrisxml  阅读(251)  评论(0编辑  收藏  举报