java 实现微博,QQ联合登录

简介:

开发平台 
http://connect.qq.com/  
http://open.weibo.com/ 
可以下载相应的sdk 和 API 

Java代码

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    package  com.fanbaobao.action;  
       
    import  javax.servlet.http.HttpServletRequest;  
    import  javax.servlet.http.HttpServletResponse;  
    import  javax.servlet.http.HttpSession;  
       
    import  com.fanbaobao.service.FbbUser;  
    import  com.fanbaobao.service.FbbService.Client;  
    import  com.fanbaobao.util.FbbUtil;  
       
    import  weibo4j.Oauth;  
    import  weibo4j.Users;  
    import  weibo4j.Weibo;  
    import  weibo4j.http.AccessToken;  
    import  weibo4j.model.User;  
    public  class  SinaAction  extends  BaseAction {  
         private  String errorMsg;   
         public  String toLogin() throws  Exception{  
             try  {  
                 HttpServletRequest request=getRequest();  
                 Oauth oauth= new  Oauth();  
                 getResponse().sendRedirect(oauth.authorize( "code" ));  //重定向到新浪授权页面  
             catch  (Exception e) {  
                 e.printStackTrace();  
             }  
             return  null ;  
         }  
           
         /** 
          * 新浪微博登录的回调 
          * @return 
          * @throws Exception 
          */  
         public  String doLogin()  throws  Exception{  
               
             HttpServletRequest request=getRequest();  
             HttpSession session=request.getSession();  
             String accesstoken   =  null ;  
             String code=request.getParameter( "code" );  
             if (code!= null )  
             {  
               
                 Oauth oauth= new  Oauth();  
                 AccessToken accessToken=oauth.getAccessTokenByCode(code);  
                 accesstoken=accessToken.getAccessToken();  
                 if (accessToken!= null )  
                 {  
                     Weibo weibo= new  Weibo();  
                     weibo.setToken(accessToken.getAccessToken());  
                     Users users= new  Users();  
                     User weiboUser=users.showUserById(accessToken.getUid());  
                     HttpServletResponse response=getResponse();  
                     System.out.println(weiboUser.getId());  
                     System.out.println(weiboUser.getGender());  
                     System.out.println(weiboUser.getName());  
                     System.out.println(accesstoken);  
    //              if(first<2){  
    //                  if(first==1){ //用户第一次登录,发一条微博,且follow 51bi  
    //                      Timeline timeline=new Timeline();  
    //                      timeline.UpdateStatus("我注册成为了#比购网#会员,免费注册后去淘宝购物,最高有35%的现金返还。最给力的是:到拉手、京东商城、1号店等400多家知名商城不仅能享受最低价格,还能额外省钱40%。喜欢网购的童鞋都去注册一个省钱吧!官方网址:http://www.51bi.com/space/biuser/register.jsp?currentUrl=http://www.51bi.com/taobao/");  
    //                      try {  
    //                          Friendships fm = new Friendships();  
    //                          fm.createFriendshipsById("1718952754");//follow 51bi  
    //                          fm.createFriendshipsById("2908640880");//follow 51bi  
    //                      } catch (Exception e) {  
    //                      }  
    //                  }  
                         //未完善资料  
                         Client client = FbbUtil.getClient();  
                         FbbUser fbbUser= client.doOauth( 1 , weiboUser.getId());  
                         session.setAttribute( "fbbUserInfo" , fbbUser);     
                         return  SUCCESS;  
                     }  
           
                 } else {  
                     errorMsg= "新浪oauth 认证请求非法!" ;  
                     return  LOGIN;  
                 }  
             return  SUCCESS;  
         }  
           
           
           
           
         public  String getErrorMsg() {  
             return  errorMsg;  
         }  
       
         public  void  setErrorMsg(String errorMsg) {  
             this .errorMsg = errorMsg;  
         }  
    }


Java代码

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    package  com.fanbaobao.action;  
       
    import  javax.servlet.http.HttpServletRequest;  
    import  javax.servlet.http.HttpServletResponse;  
    import  javax.servlet.http.HttpSession;  
       
    import  com.fanbaobao.service.FbbUser;  
    import  com.fanbaobao.service.FbbService.Client;  
    import  com.fanbaobao.util.FbbUtil;  
    import  com.qq.connect.QQConnectException;  
    import  com.qq.connect.api.OpenID;  
    import  com.qq.connect.api.qzone.PageFans;  
    import  com.qq.connect.api.qzone.UserInfo;  
    import  com.qq.connect.javabeans.AccessToken;  
    import  com.qq.connect.javabeans.qzone.PageFansBean;  
    import  com.qq.connect.javabeans.qzone.UserInfoBean;  
    import  com.qq.connect.oauth.Oauth;  
       
    public  class  QzoneAction  extends  BaseAction {  
    private  String errorMsg;   
       
         public  String toLogin() throws  Exception{  
             this .getResponse().setContentType( "text/html;charset=utf-8" );  
             try  {  
                 this .getResponse().sendRedirect( new  Oauth().getAuthorizeURL( this .getRequest()));  
             catch  (QQConnectException e) {  
                 e.printStackTrace();  
             }  
             return  null ;  
         }  
           
         public  String doLogin() throws  Exception{  
              HttpServletResponse response= this .getResponse();  
              HttpServletRequest request= this .getRequest();  
              HttpSession session=request.getSession();  
              response.setContentType( "text/html; charset=utf-8" );  
                 try  {  
                     AccessToken accessTokenObj = 
                     ( new  Oauth()).getAccessTokenByRequest(request);  
                       
                     String accessToken   =  null ,  
                            openID        =  null ;  
                     Long tokenExpireIn =  null ;  
       
       
                     if  (accessTokenObj.getAccessToken().equals( "" )) {  
                         errorMsg= "QQ登录校验失败!" ;  
                         return  LOGIN;  
                     else  {  
                         accessToken = accessTokenObj.getAccessToken();  
                         tokenExpireIn = accessTokenObj.getExpireIn();  
                           
                         request.getSession().setAttribute( "demo_access_token" , accessToken);  
                         request.getSession().setAttribute(
                         "demo_token_expirein" , String.valueOf(tokenExpireIn));  
                         OpenID openIDObj =   new  OpenID(accessToken);  
                         openID = openIDObj.getUserOpenID();  
       
                         request.getSession().setAttribute( "demo_openid" , openID);  
                         UserInfo qzoneUserInfo =  new  UserInfo(accessToken, openID);  
                         UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();  
    //  
                         PageFans pageFansObj =  new  PageFans(accessToken, openID);  
                         PageFansBean pageFansBean = pageFansObj.checkPageFans( "97700000" );  
                         com.qq.connect.api.weibo.UserInfo weiboUserInfo = 
                         new  com.qq.connect.api.weibo.UserInfo(accessToken, openID);  
                         com.qq.connect.javabeans.weibo.UserInfoBean weiboUserInfoBean =
                          weiboUserInfo.getUserInfo();  
       
                      // 第三方处理用户绑定逻辑  
                         String user_id=openID;  
                         String nickname= new  String(userInfoBean.getNickname());  
                         System.out.println(user_id);  
                         System.out.println(nickname);  
                         Client client = FbbUtil.getClient();  
                         FbbUser fbbUser= client.doOauth( 2 , user_id);  
                         session.setAttribute( "fbbUserInfo" , fbbUser);     
                         return  SUCCESS;  
    //                  session.setAttribute("oauth_token", oauth_token);  
    //                  session.setAttribute("oauth_token_secret", oauth_token_secret);  
    //                  InterUser interUser=new InterUser(
                                                                 Constants.LOGIN_FROM_QQ,user_id, null ,nickname);  
    //                  interUser.setBiUserService(biUserService);  
    //                  interUser.setRuledao(ruledao);  
    //                  interUser.setAccesstoken(accessToken);  
    //                  if (tokenExpireIn!=null) {  
    //                      interUser.setExpireIn(String.valueOf(tokenExpireIn));  
    //                  }  
    //                  session.setAttribute("uid", user_id);  
    //                  session.setAttribute("fromsite", Constants.LOGIN_FROM_QQ);  
    //                  int first=interUser.doUserLogin(request,response,false); //接口登录  
    //                  if(first<2){  
    //                      session.setAttribute("loginname",nickname);  
    //                      if (first==-1) {  
    //                          session.setAttribute("msg","save userBind error");  
    //                      }else if (first==-2) {  
    //                          session.setAttribute("msg","error");  
    //                      }  
    //                      return "qzone";  
    //                  }          
       
                     }  
                 catch  (QQConnectException e) {  
                     e.printStackTrace();  
                     return  LOGIN;  
                 }  
         }  
           
           
           
         public  String getErrorMsg() {  
             return  errorMsg;  
         }  
       
         public  void  setErrorMsg(String errorMsg) {  
             this .errorMsg = errorMsg;  
         }  
    }


Java代码

  1. //login.properties  

  2. ############  

  3. #t.sina login  

  4. ###########  

  5. client_ID =xx     

  6. client_SERCRET =xx  

  7. redirect_URI =xxx  

  8. baseURL=https://api.weibo.com/2/  

  9. accessTokenURL=https://api.weibo.com/oauth2/access_token  

  10. authorizeURL=https://api.weibo.com/oauth2/authorize  

  11. ############  

  12. #taoBao login  

  13. ###########  

  14.   

  15. #TAOBAO_KEY=xxxx  

  16. #TAOBAO_SECRET=xxxxxx  

  17. #TAOBAO_REDIRECT=xxxx  

  18. #authorizeURL=https://oauth.taobao.com/authorize  

  19. #accessTokenURL=https://oauth.taobao.com/token  

  20.   

  21. //qqconnectconfig.properties  

  22. app_ID = x  

  23. app_KEY = xx  

  24. redirect_URI = xxx  

  25. scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,

  26. add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,

  27. get_tenpay_addr  

  28. baseURL = https://graph.qq.com/  

  29. getUserInfoURL = https://graph.qq.com/user/get_user_info  

  30. accessTokenURL = https://graph.qq.com/oauth2.0/token  

  31. authorizeURL = https://graph.qq.com/oauth2.0/authorize  

  32. getOpenIDURL = https://graph.qq.com/oauth2.0/me  

  33. addTopicURL = https://graph.qq.com/shuoshuo/add_topic  

  34. addBlogURL = https://graph.qq.com/blog/add_one_blog  

  35. addAlbumURL = https://graph.qq.com/photo/add_album  

  36. uploadPicURL = https://graph.qq.com/photo/upload_pic  

  37. listAlbumURL = https://graph.qq.com/photo/list_album  

  38. addShareURL = https://graph.qq.com/share/add_share  

  39. checkPageFansURL = https://graph.qq.com/user/check_page_fans  

  40. addTURL = https://graph.qq.com/t/add_t  

  41. addPicTURL = https://graph.qq.com/t/add_pic_t  

  42. delTURL = https://graph.qq.com/t/del_t  

  43. getWeiboUserInfoURL = https://graph.qq.com/user/get_info  

  44. getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info  

  45. getFansListURL = https://graph.qq.com/relation/get_fanslist  

  46. getIdolsListURL = https://graph.qq.com/relation/get_idollist  

  47. addIdolURL = https://graph.qq.com/relation/add_idol  

  48. delIdolURL = https://graph.qq.com/relation/del_idol  

  49. getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr  

  50. getRepostListURL = https://graph.qq.com/t/get_repost_list  

  51. version = 2.0.0.0  

转自:http://takeme.iteye.com/blog/1995874

特别说明:尊重作者的劳动成果,转载请注明出处哦~~~http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt313
相关文章
|
4月前
|
存储 安全 Java
基于Java爬取微博数据(四) 获取 图片 or 视频
【5月更文挑战第14天】基于Java爬取微博数据(四) 图片 or 视频 下载
|
4月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
1月前
|
存储 算法 Java
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
这篇文章详细介绍了在Java项目中如何使用MD5算法对用户密码进行加密存储和登录验证,包括加入依赖、编写MD5工具类、注册时的密码加密和登录时的密码验证等步骤,并通过示例代码和数据库存储信息展示了测试效果。
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
|
21天前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
3月前
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
44 1
|
3月前
|
存储 NoSQL Java
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
61 0
|
3月前
|
安全 前端开发 Java
Java Web项目登录报Session Error
Java Web项目登录报Session Error
30 0
|
4月前
|
数据采集 前端开发 Java
2024年全新基于Java爬取微博数据(完整版)
【5月更文挑战第9天】适用于2024年 的 基于 Java 爬取微博数据,涉及 微博正文、图片、视频、粉丝数、关注数、等微博主页正文列表数据及微博主页用户数据信息的获取
|
4月前
|
JSON 前端开发 Java
基于Java爬取微博数据(三) 微博主页用户数据
【5月更文挑战第13天】基于Java爬取微博数据(三) 微博主页用户数据
|
4月前
|
前端开发 JavaScript Java
前端和Java验签以太坊钱包签名实现中心化登录
前端和Java验签以太坊钱包签名实现中心化登录
988 8