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

时间: 2024-10-21 21:15:17

java 实现微博,QQ联合登录的相关文章

QQ微信微博联合登录流程总结

第三方联合登录一般可以降低网站的获客成本,所以一般的网站都会做一些联合登录,常用的就是QQ.微信.微博了,下面简单的介绍一下这些联合登录的方法. 看了一号店的QQ登录源码可知,点击图标直接访问的是这个链接https://passport.yhd.com/qq/login.do?tp=2.0.0.0.0.LWyye4h-10-C`toe&ti=H2H3VT 它首先请求的是自己网站的请求,后面那两个参数应该没用,大家自己项目可以不用加,不过抓包能看出来它在服务端做了一个重定向指向了腾讯的QQ授权登录

java实现 微博登录、微信登录、qq登录实现代码_java

微信,微博,QQ,这是现在目前用的最多的手机 APP,我们做产品哪能不跟他们不沾边,对于登录,我想谁也不想要多少个帐号密码,根本记不住! 为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注册的的需求也就由此而诞生 1.微信  1) 微信登录也是最坑人的,需要花300大洋成为开发者账户,没办法谁让微信用户群体大呢所以也就只好认了:然后登录网站后台需要创建网站应用,填写授权回调域(登录网站的域名)只填写域名即可 申请地址: https://open.weixin.qq.com/cgi-b

微博爬虫“免登录”技巧详解及Java实现

一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账号给封了,而且现在随着实名制的落地,获得账号的渠道估计也会变得越来越少. 但是日子还得继续,在如此艰难的条件下,为了生存爬虫们必须寻求进化.好在上帝关门的同时会随手开窗,微博在其他诸如头条,一点等这类新媒体平台的冲击之下,逐步放开了信息流的查看权限.现在的微博即便在不登录的状态下,依然可以看到很多微

求助-[JAVA]微信联合登录相关

问题描述 [JAVA]微信联合登录相关 用户在手机微信打开一个web页面后使用微信登录 官方给的文档里,网站应用只有扫码登录页面没有授权登录页面,请问大神这种情况应该怎么办? 解决方案 扫码完成之后,会自动跳转到微信的授权界面吧,授权界面应该是微信提供的,你只需要接收授权之后的操作.

Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录_java

对于一个帐号在同一时间只能一个人登录,可以通过下面的方法实现: 1 .在用户登录时,把用户添加到一个ArrayList中 2 .再次登录时查看ArrayList中有没有该用户,如果ArrayList中已经存在该用户,则阻止其登录 3 .当用户退出时,需要从该ArrayList中删除该用户,这又分为三种情况 ① 使用注销按钮正常退出 ② 点击浏览器关闭按钮或者用Alt+F4退出,可以用JavaScript捕捉该页面关闭事件, 执行一段Java方法删除ArrayList中的用户 ③ 非正常退出,比如

java实现微博后台登录发送微博_java

首先你需要有个微博开发者账号,我们需要的是App Key和App Secre及redirect_URI,公司原本就有所以这一步 省下来了,百度搜下有很多. 好了现在开始: 首先我在网上找到了这个代码,这里写链接内容 本来挺高兴的一次性解决了嘛:可是报错 "token刷新失败",看了下代码 返回的是 200 不是302 ,额有点懵了,不管了先研究研究为什么会这样吧,我将他生成的网址放到浏览器上看了下,进入的是授权页面,不会需要先登录.F12 看了下确实也是 200 ,于是我估计是不是因为

java验证微博账号的代码怎么写?急求大神指教········

问题描述 java验证微博账号的代码怎么写?急求大神指教········ 要怎么验证字符串是微博账号啊?如果该字符串是微博账号返回true,否则返回false,怎么才能验证它是不是微博的账号呢??? 解决方案 微博账户就是邮箱地址啊,用正则表达式匹配下. 解决方案二: 新浪邮箱.拿到后匹配,或者是uid 解决方案三: 微博并不一定用新浪的邮箱.我自己就用gmail的 解决方案四: 我一个邮箱,就没有注册过新浪微博,只能通过新浪微博的官方接口来验证是否可以登陆 解决方案五: 可以考虑通过微博接口,

VC调用JavaScript函数--处理QQ网页登录密码加密(空间、农场、WEB QQ等)

相信很多朋友都对QQ伴侣等农场外挂十分好奇吧!其实我也是,然而不幸的是很多像我一样的兄弟在模拟农场登录时,就被JS函数加密的密码字符串给挡在门外,于是百度来google去,始终没有一个完整的代码或例子. 登录时用OmniPeek捕获得到的数据包如下(QQ号1.密码123456.验证码1234): 其实QQ网页登录密码加密方式(包括空间.农场.WEB QQ等)都是一样的. http://imgcache.qq.com/ptlogin/js/comm.js 周末自己便将腾讯JS加密文件给下载下来了.

PHP实现QQ快速登录的方法_php实例

前言: PHP实现QQ快速登录,罗列了三种方法 方法一:面向过程,回调地址和首次触发登录写到了一个方法页面[因为有了if做判断], 方法二,三:面向对象 1.先调用登录方法,向腾讯发送请求, 2.腾讯携带本网站唯一对应参数OPENID,ACCESSTOKEN,返回到对应回调页面, 3.回调页面接受到腾讯的参数后,通过这个两个参数,再发出对应的请求,如查询用户的数据. 4.腾讯做出对应的操作,如返回这个用户的数据给你 即使你没看懂,也没关系,按照我下面的流程来,保证你可以实现. 前期准备: 使用人