zoukankan      html  css  js  c++  java
  • java 实现微博,QQ联合登录

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt313

    开发平台 
    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  

  • 相关阅读:
    前端常用模板引擎- artTemplate
    Vue-多级组件嵌套传值
    echarts图表常用到的设置
    react-基础入门分享
    vue中 export const 和 export default的区别
    vue安装依赖报错
    nvm-node版本控制工具
    gulp-入门
    vue 中使用 iconfont
    c3中基本动画
  • 原文地址:https://www.cnblogs.com/grefr/p/6089075.html
Copyright © 2011-2022 走看看