自己总结的一些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");

更多相关文章

  1. Android Twitter第三方登录&获取用户信息
  2. Android 新浪授权和分享经验总结
  3. Android 的用户层 uevent处理机制
  4. android中得到所有安装的应用程序及区分其是否为系统应用程序还
  5. 【Android】手机地图功能——利用手机GPS获取用户地理坐标
  6. 新浪微博布局学习——活用Android的RelativeLayout

随机推荐

  1. M 365 开发篇:SharePoint Framework 1.12
  2. 编程题:统计二进制中1的个数
  3. Linux 优化 | 我终于要对运维小哥下手
  4. macOS下使用非Apple的蓝牙耳机音质差?不妨
  5. 一条数据在 Apache Iceberg 之旅:写过程分
  6. 多线程安全-iOS开发要注意咯!
  7. Apache Iceberg 是如何解决小文件问题的?
  8. 苹果Mac如何设置允许任何来源应用程序安
  9. 这些未在 Spark SQL 文档中说明的优化措
  10. Python爬虫进阶必备 | 关于 ReRes 的一篇