详见: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. #TAOBAO_KEY=xxxx

    15. #TAOBAO_SECRET=xxxxxx

    16. #TAOBAO_REDIRECT=xxxx

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

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

    19. //qqconnectconfig.properties

    20. app_ID = x

    21. app_KEY = xx

    22. redirect_URI = xxx

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

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

    25. get_tenpay_addr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    49. version = 2.0.0.0

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

  1. QQ联合登录(基于Oauth2.0协议)

    1. 获取授权码Authorization Code https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id= ...

  2. 如何从零开始对接第三方登录(Java版):QQ登录和微博登录

    前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...

  3. 【Demo】QQ,github,微博第三方社交登录

    本文主要讲解 集成 第三方社交账号登录 为什么会有这个需求? 主要是因为目前互联网的网站数量太多,如果在各个站点都注册一个账号 用户非常不容易记住每个账号的用户名和密码,并且非常难保证每个账号的密码足 ...

  4. 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(二)

    (二).新浪微博登录 1. 首先在新浪微博开放平台注册成为开发者.[http://open.weibo.com/connect] 具体自己填写一些相关信息就OK! 2. 注册成功之后,点击[微连接], ...

  5. 微博爬虫“免登录”技巧详解及 Java 实现(业余草的博客)

    一.微博一定要登录才能抓取? 目前,对于微博的爬虫,大部分是基于模拟微博账号登录的方式实现的,这种方式如果真的运营起来,实际上是一件非常头疼痛苦的事,你可能每天都过得提心吊胆,生怕新浪爸爸把你的那些账 ...

  6. QQ第三方登录

    QQ第三方登录 在Android应用程序的开发过程中,很多时候需要加入用户登录/注册模块.除了自己动手设计登录界面并实现相应功能外,现在还可以借助百度.腾讯等开发者平台提供的第三方账号登录模块.最近研 ...

  7. 联合登录 & OAuth 2.0 & OpenID

    联合登录 & OAuth 2.0 & OpenID 第三方联合登录一般可以降低网站的获客成本,所以一般的网站都会做一些联合登录,常用的就是QQ.微信.微博; https://www.z ...

  8. PHP实现QQ第三方登录

    PHP实现QQ第三方登录 学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博 ...

  9. QQ互联登录回调路径错误redirect uri is illegal(100010)

    QQ互联登录设置的路径设置

随机推荐

  1. [硬件]_ELVE_VS2015下opencv3.3的配置问题

    0x00  引言 最近想搞一下摄像头,但是我的Windows版本是64位的,opencv3.3貌似也只支持64位系统了,所以就配置一下win10+vs2015+opencv3.3的环境变量,具体下载和 ...

  2. CI 结合 vue.js 的搜索功能模块

    CI 结合 vue.js 的搜索功能模块 最近在有优化公司后台的某个模块的搜索功能优化 原先的是这个样子的,很是单调: 老大给我找个图希望我能弄成这样子: 经过不断修改,最后成了这样子 是不是比以前好 ...

  3. [BZOJ 1054][HAOI 2008]移动玩具 状态压缩

    考试的时候一看是河南省选题,觉得会很难,有点不敢想正解.感觉是个状压.但是一看是十年前的题,那怂什么! 直接把十六个数的状态压进去,因为个数是不变的,所以状态枚举的时候只要找数目一样的转移即可.而且只 ...

  4. python之路——面向对象

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复 ...

  5. 关于div+css排版布局中需注意的细节问题

    第一个注意点:选择器的使用(标签.class.id) 三种选择器中id(#)的优先级最高,根据id名筛选出唯一元素: 如下输入:#menu{ width:1200px; height:45px; ba ...

  6. .Net Webapi Swagger增加登录功能

    .mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...

  7. 漫谈ELK在大数据运维中的应用

    漫谈ELK在大数据运维中的应用 圈子里关于大数据.云计算相关文章和讨论是越来越多,愈演愈烈.行业内企业也争前恐后,群雄逐鹿.而在大数据时代的运维挑站问题也就日渐突出,任重而道远了.众所周知,大数据平台 ...

  8. MYSQL创建数据库时候直接指定编码和排序规则

    安装我 在网上搜索的结果执行 代码: sudo gedit /etc/mysql/my.cnf 设置了默认编码为 UTF8 代码: [client]port            = 3306sock ...

  9. 监听 window.open 打开的窗口关闭并回调

    第三方的登录的解决方案通常有两种方式,一是打开一个新的标签页,然后登录回调回来: 二是通过父窗口打开一个子窗体去第三方登录,登陆成功时关掉子窗体回到父窗口. 问题来了 我的父窗体怎么样才知道子窗体被关 ...

  10. php之数组

    数组分类: 1.索引数组. 索引值从0开始,依次递增. 2.使用array()函数声明数组 <?php // 1.直接为数组元素赋值即可声明数组 $contact_index[0] = 1; $ ...