zoukankan      html  css  js  c++  java
  • Android新浪微博登陆和获取个人信息

          自己总结的一些android新浪登陆和根据用户ID获取用户信息,以下代码只是写了重要的部分,详细代码可到新浪官方下载一个Demo,里面都有详细流程和各种API。

    Constant.java   常量类

    View Code
    /** 新浪设置appkey及appsecret access_token */
    public static final String CONSUMER_KEY = "XXXXXXXX";
    public static final String CONSUMER_SECRET = "XXXXXXXXXXXX";
    public static String ACCESS_TOKEN = "";

    新浪微博登陆事件

    View Code
            tv_sina.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                try {
                    Weibo weibo = Weibo.getInstance();
                    weibo.setupConsumerConfig(Constant.CONSUMER_KEY, Constant.CONSUMER_SECRET);
                    // 隐式授权认证方式
                    weibo.setRedirectUrl("http://XXXXX.com");
                    weibo.authorize(LoginActivity.this,new AuthDialogListener()); 
                    } catch (Exception e) {}
                }
            });
    
        /** 新浪微博认证登陆框 */
        class AuthDialogListener implements WeiboDialogListener {
            @Override
            public void onComplete(Bundle values) {
                
                // 清楚新浪微博API登陆账号密码
                Utility.clearCookies(LoginActivity.this);
                Utility.clearRequestHeader();
                CookieManager.getInstance().removeSessionCookie();
                
                token = values.getString("access_token");
                String expires_in = values.getString("expires_in");
                wb_uid = values.getString("uid");
                // 保存常量
                Constant.ACCESS_TOKEN = token;
                Utility.setAuthorization(new Oauth2AccessTokenHeader());
                AccessToken accesstoken = new AccessToken(token, Constant.CONSUMER_SECRET);
                accesstoken.setExpiresIn(expires_in);
                Weibo.getInstance().setAccessToken(accesstoken);
                /*
                synchronized (LoginActivity.class) {
                    if(sendhandler == false){
                        sendhandler = true;
                        Log.i("LOGIN", "********************************");
                        Message msg = Message.obtain();
                        msg.arg1 = 1;
                        handler.sendMessage(msg);
                    }
                    sendhandler = true;
                }
                */
            }
            @Override
            public void onError(DialogError e) {
            }
    
            @Override
            public void onCancel() {
            }
    
            @Override
            public void onWeiboException(WeiboException e) {
            }
        }

    根据用户ID获取用户信息

    View Code
        /**
         * 新浪微博:根据用户ID获取用户信息
         * @param weibo
         * @return
         * @throws MalformedURLException
         * @throws IOException
         * @throws WeiboException
         */
        public String getUserCounts(Weibo weibo,String uid) 
                throws MalformedURLException, IOException, WeiboException {
            String url = Weibo.SERVER + "users/show.json";
            WeiboParameters bundle = new WeiboParameters();
            bundle.add("source", Weibo.getAppKey());
            bundle.add("uid", uid);
            String res = weibo.request(this, url, bundle, "GET", weibo.getAccessToken());
            return res;
        }
    
        /** 通过JSON获取到新浪微博用户信息,且解析相关内容信息 */
        String UserResult = getUserCounts(Weibo.getInstance(), wb_uid);
        JSONObject jsonObj = new JSONObject(UserResult);
        // 用户昵称
        wb_screen_name = jsonObj.getString("screen_name");
        // 友好显示名称(name)
        wb_name = jsonObj.getString("name");
        // 用户头像地址,50×50像素
        wb_profile_image_url = jsonObj.getString("profile_image_url");
  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/androidsj/p/2972823.html
Copyright © 2011-2022 走看看