Android——第三方登录——新浪微博——获取用户信息——账户绑定
来源:互联网 发布:淘宝店铺的收入 编辑:程序博客网 时间:2024/05/21 14:05
前一篇文章完成了使用新浪微博登陆,但是并没有获取到用户信息,这篇文章介绍一下登陆成功后如何获取用户信息,以及获取用户信息后怎样与你的App交互。
首先介绍一下获取用户信息:
从官方文档中找到获取用户的方法,看来几行代码就可以搞定了,但是 当我只导入 官方给的weiboSDKCore_3.1.4.jar包时,并没有用户管理需要的OpenAPI,刚开始以为是该API是需要高级权限呢,后来发现该API在给的 WeiboSDK 里面找到,之前官方文档上面给过(没有认真看文档。。。)
好了,前期工作搞定,下面是获取用户信息的代码:
mUsersAPI = new UsersAPI(mContext, WEIBO_APP_KEY, mAccessToken); long uid = Long.parseLong(mAccessToken.getUid()); mUsersAPI.show(uid, new RequestListener() { @Override public void onWeiboException(WeiboException arg0) { // TODO Auto-generated method stub } @Override public void onComplete(String response) { if (!TextUtils.isEmpty(response)) { User user = User.parse(response); Toast.makeText(mContext, user.screen_name, Toast.LENGTH_LONG).show(); } } });
下图是从官网上找的User类说明:
好了,现在已完成新浪微博的登陆与获取登陆的用户信息,下面先 写点我对 新浪微博登陆成功后返回的 Oauth2AccessToken 的理解 为什么在获得后要将这些信息保存到本地,// 保存 Token 到 SharedPreferences 中,其中 参数expires_in是登陆有效时间,可通过access_token 获取用户信息,通过这些信息 我联想到之前做用户登陆注册时做的将用户信息保存到本地,除了将用户信息还将用户登陆时间记录,即为了保存用户信息不是一直可以而是只保留一段时间,这些只是个人理解。
好了,怎样利用现有的新浪微博用户信息呢,怎样跟自己的App自己的服务器关联呢?下面来说一下我的理解。用第三方登录分一下两种情况,如下图所示:
下面是用 没有App账号使用第三方账号登录,流程图如下:
代码如下:
mUsersAPI = new UsersAPI(mContext, WEIBO_APP_KEY, mAccessToken); long uid = Long.parseLong(mAccessToken.getUid()); mUsersAPI.show(uid, new RequestListener() { @Override public void onWeiboException(WeiboException arg0) { // TODO Auto-generated method stub } @Override public void onComplete(String response) { if (!TextUtils.isEmpty(response)) { // 璋冪敤 User#parse 灏咼SON涓茶В鏋愭垚User瀵硅薄 User user = User.parse(response); Toast.makeText(mContext, user.profile_image_url, Toast.LENGTH_LONG).show(); PublicData.bu.setUsername(user.id); PublicData.bu.setPassword(WeiboLoginScr(user.id)); PublicData.bu.setNick_URL_NET(user.profile_image_url); PublicData.bu.setSex(user.gender.equals("m") == true ? false : true); String avatarPath = PublicData.LocFileNick.getPath() + "/" +PublicData.getFileName(PublicData.bu.getNick_URL_NET()); PublicData.bu.setNick_URL_LOCAL(avatarPath); System.out.println("Login Success get user info : \n"+PublicData.bu.toString()); File fileTmp = new File(PublicData.bu.getNick_URL_LOCAL()); if(!fileTmp.exists()){ BmobFile bmobfile =new BmobFile(PublicData.getFileName(PublicData.bu.getNick_URL_NET()),"",PublicData.bu.getNick_URL_NET()); downLoadAvatar(bmobfile); }else{ System.out.println("avatar exists!"); } PublicData.bu.signUp(mContext, new SaveListener() { @Override public void onSuccess() { // TODO Auto-generated method stub mActivity.finish(); PublicData.loginState = true; PublicData.bu.setLoginState(true); PublicData.bu.setTime(System.currentTimeMillis()); UserSharePreference sharePreference = new UserSharePreference(mContext); sharePreference.saveMessage(PublicData.bu); gooChat(); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub Toast.makeText(mContext, arg1, Toast.LENGTH_LONG).show(); if(arg0 == 202){ //账户已存在直接登录 PublicData.bu.login(mContext, new SaveListener() { @Override public void onSuccess() { // TODO Auto-generated method stub PublicData.loginState = true; PublicData.bu.setLoginState(true); PublicData.bu.setTime(System.currentTimeMillis()); UserSharePreference sharePreference = new UserSharePreference(mContext); sharePreference.saveMessage(PublicData.bu); gooChat(); } @Override public void onFailure(int arg0, String arg1) { // TODO Auto-generated method stub } }); } } }); } }
好了,至此完成在没有自己账号的时候用新浪微博账号登录App。
0 0
- Android——第三方登录——新浪微博——获取用户信息——账户绑定
- Android开发全程记录(九)——使用新浪微博登录第三方应用
- 实现新浪微博第三方登录获取用户信息
- 第三方登录——QQ、微信、新浪微博和百度登录
- 【Android实战】实现新浪微博第三方登录获取用户信息
- 学习笔记之——新浪微博第三方登录分享接口
- Android——第三方QQ登录
- iOS 第三方登陆 —— 新浪微博
- iOS 第三方登陆 —— 新浪微博
- android新浪微博登录获取用户信息
- 第三方登录——QQ登录
- PHP第三方登录—QQ登录
- 第三方登录—QQ登录
- 第三方登录——微博登录
- Android Twitter第三方登录&获取用户信息
- 第三方支付架构设计之—自有账户支付
- 第三方支付架构设计之—自有账户支付
- 第三方支付架构设计之—自有账户支付
- 用Newtonsoft将json串转为对象
- 简单说两条网站安全问题
- iOS学习- 22 Core Data by Tutorials - CH02
- sqlserver 死锁
- Docker如何build Tomcat镜像
- Android——第三方登录——新浪微博——获取用户信息——账户绑定
- 来自中午机房的1071
- C语言笔记系列(一)--概述
- QTcpsocket 使用 模板
- java工具类之对象与字节数组之间的互相转换
- php代码优化
- Hibernate中操作managed/persistent状态的Entity对象使之成为detached状态的Entity对象
- 文章标题
- ios 判断字符串为空和只为空格解决办法