一个简洁的博客网站:http://lss-coding.top,欢迎大家来访
学习娱乐导航页:http://miss123.top/


QQ 互联参考文档:https://wiki.connect.qq.com/

1. 注册开发者

  1. 在 QQ 互联开放平台首页 https://connect.qq.com/ 点击登录

  1. 登录成功后跳转到开发者注册页面,在注册页面按要求提交公司或者个人的基本资料

  1. 按照要求提交资料后,审核人员开始进行审核,审核通过之后即可成为开发者

2. 创建应用(网站应用及应用接入申请)

应用在接入前,首先需要进行申请获取对应的 appid 与 appkey,以保证后续流程中可正确对网站与用户进行验证和授权

开发者注册完成后,点击“应用管理”按钮,然后点击创建应用

选择创建应用的类型,这里以网站应用为例子:

  • http://icp.chinaz.com/ 查看域名的备案信息
  • 网站回调地址例如:https://www.qq.com/data /data 接口可以拿到回调的信息
  • 回调地址填写规范:https://wiki.connect.qq.com/%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%8F%8A%E4%BF%AE%E6%94%B9%E6%96%B9%E6%B3%95

网站信息填写完成后,点击“创建应用”后,网站应用创建完成,点击“应用管理”,进入管理中心,在管理中心可以查看到网站获取的 appid 和 appkey

在应用管理可以看到创建的应用,点击查看,点击左侧的“应用接口”,可以看到已获取的接口,使用 QQ登录功能

至此创建应用成功,等待审核成功就可以接入到 java 代码中实现 QQ 第三方登录的功能

3. Java 代码接入 QQ 第三方登录功能

  1. 创建一个 Spring Boot 项目:qq-login-demo,并且导入以下依赖
<!-- QQ 第三方登录 -->
<dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 在 resources 目录下创建 qqconnectconfig.properties 配置文件
# qq 登录相关的配置
# 从qq互联平台得到的应用APPID
app_ID = 10xxxx86
# 从qq互联平台得到的应用APPKEY
app_KEY = 1d8axxxxxxxxxxxxxxxx5b7b7
# 设置的回调地址
redirect_URI = http://miss123.top/data
scope = get_user_info
#scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr
baseURL = https://graph.qq.com/
getUserInfoURL = https://graph.qq.com/user/get_user_info
accessTokenURL = https://graph.qq.com/oauth2.0/token
authorizeURL = https://graph.qq.com/oauth2.0/authorize
getOpenIDURL = https://graph.qq.com/oauth2.0/me
addTopicURL = https://graph.qq.com/shuoshuo/add_topic
addBlogURL = https://graph.qq.com/blog/add_one_blog
addAlbumURL = https://graph.qq.com/photo/add_album
uploadPicURL = https://graph.qq.com/photo/upload_pic
listAlbumURL = https://graph.qq.com/photo/list_album
addShareURL = https://graph.qq.com/share/add_share
checkPageFansURL = https://graph.qq.com/user/check_page_fans
addTURL = https://graph.qq.com/t/add_t
addPicTURL = https://graph.qq.com/t/add_pic_t
delTURL = https://graph.qq.com/t/del_t
getWeiboUserInfoURL = https://graph.qq.com/user/get_info
getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info
getFansListURL = https://graph.qq.com/relation/get_fanslist
getIdolsListURL = https://graph.qq.com/relation/get_idollist
addIdolURL = https://graph.qq.com/relation/add_idol
delIdolURL = https://graph.qq.com/relation/del_idol
getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr
getRepostListURL = https://graph.qq.com/t/get_repost_list
version = 2.0.0.0
  1. 在 templates 文件夹下创建一个 index.html 登录页面,简单的链接跳转到 controller 中的 qqLogin 接口,但是可能简单的会审核不通过(所以尽量找一个界面比较完善的登录页面,这里以简单为主)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>QQ 第三方登录测试</h1>
<a href="{$openLoginUrl.connectQQ}" class="icon connect-qq"><span icon-bg2="/qqLogin"></span>  QQ登录</a>
</body>
</html>

  1. 创建一个 LoginController
/*** @author lishisen* @description 登录控制器* @date 2022/1/18 16:48**/
@Slf4j
@Controller
public class LoginController {/*** @author lishisen* @description 当访问 80 端口的时候进入登录页面* @date 2022/1/19 10:13**/@RequestMapping("/")public ModelAndView toIndexPage(ModelAndView model) {log.info("进入登录页面......");model.addObject("title", "QQ 第三方登录测试");model.setViewName("aaa");return model;}/*** @author lishisen* @description qq 登录,带参数发送服务器* @date 2022/1/19 10:16**/@RequestMapping("/qqLogin")public void qqLogin(HttpServletRequest request, HttpServletResponse response) {response.setContentType("text/html;charset=utf-8");try {response.sendRedirect(new Oauth().getAuthorizeURL(request));} catch (Exception e) {e.printStackTrace();}}/*** @author lishisen* @description 回调* @date 2022/1/19 10:19**/@RequestMapping("/data")public void connect(HttpServletRequest request, HttpServletResponse response) throws IOException {response.setContentType("text/html; charset=utf-8");PrintWriter out = response.getWriter();try {AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);String accessToken = null, openId = null;long tokenExpireIn = 0L;if (accessTokenObj.getAccessToken().equals("")) {// 我们的网站被 CSRF 攻击力或者用户取消了授权,做一些数据统计工作log.error("没有获取到响应参数!!!");} else {accessToken = accessTokenObj.getAccessToken();tokenExpireIn = accessTokenObj.getExpireIn();request.getSession().setAttribute("demo_access_token", accessToken);request.getSession().setAttribute("demo_token_expirein", String.valueOf(tokenExpireIn));// 利用获取到的 accessToken 去获取当前用户的 openid ------ startOpenID openIDObj = new OpenID(accessToken);openId = openIDObj.getUserOpenID();out.println("欢迎您,代号为:" + openId + "的用户");request.getSession().setAttribute("demo_openid", openId);}UserInfo userInfo = new UserInfo(accessToken, openId);UserInfoBean userInfoBean = userInfo.getUserInfo();out.println("<br/>");if (userInfoBean.getRet() == 0) {out.println(userInfoBean.getNickname() + "<br/>");out.println(userInfoBean.getGender() + "<br/>");out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL30() + "><br/>");out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL50() + "><br/>");out.println("<image src=" + userInfoBean.getAvatar().getAvatarURL100() + "><br/>");} else {out.println("很抱歉,我们没能正确获取到您的信息,原因是:" + userInfoBean.getMsg());}} catch (QQConnectException e) {e.printStackTrace();}}}
  1. 至此,项目搭建完成,将项目打包放到服务器上(备案域名绑定的服务器),并设置启动端口为 80 端口,如果有 nginx 需要做一下端口代理映射

4. 测试登录

放到浏览器上之后访问自己绑定的域名(我的 miss123.top)

然后点击 QQ 登录进入 QQ 扫描登录页面

扫码之后在手机上授权登录,登录成功后返回 QQ 用户的昵称,性别,头像,还有一个唯一的用户id

至此,Java + QQ 实现第三方登录完成。QQ 互联测试成功,那么其他的第三方登录方法于此如出一辙,博主认为最麻烦的还是审核部分,我修改了 6 次审核信息才可以审核通过。此外其他的第三方登录微信是需要交费用的,百度是最方便使用的,信息填写完成就可以使用了,不用等待审核。

QQ 第三方登录知识点总结相关推荐

  1. QQ第三方登录报错error=-1

    qq 第三方登录报错error=-1 再次实例化qc类.

  2. python调用qq互联_Django项目中实现使用qq第三方登录功能

    使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...

  3. 一步一步实现iOS QQ第三方登录

    前言 最近在公司应用中集成QQ登录的时候遇到一些波折(坑点),觉得还是有必要记录一下. 一.集成SDK 1.集成官方Framework 首先下载官网SDK iOS_SDK下载,目前来说最新的包是V3. ...

  4. php第三方登录代码,thinkPHP5项目中实现QQ第三方登录功能

    本文实例讲述了thinkPHP5项目中实现QQ第三方登录功能.分享给大家供大家参考,具体如下: 最近用thinkPHP 5框架做了一个婚纱店的项目,在开发过程中需要用到第三方登录,腾讯官方给的案例是几 ...

  5. java实现支付宝第三方登录_Java 实现QQ第三方登录(附赠:完整代码)

    老铁,转发+关注+私信 获取完整代码 前言:很多时候我们都需要如下的第三方登录,用QQ帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户. 下面让我们来实现吧,可以参考官网文档,也可以看我下 ...

  6. php如何实现qq第三方登录,PHP实现qq第三方登录

    除了qq第三方登录外.还有微博,微信等第三方登录 qq第三方登录,遵循oauth2.0协议 这里是说明http://www.cnblogs.com/yx520zhao/p/6616686.html q ...

  7. python实现QQ第三方登录

    应用接入前,首先需进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权.http://wiki.connect.qq.com/__trashed-2 QQ登录 ...

  8. QQ第三方登录-QQ互联开发者申请的坑(个人接入,时间:2019-6-3)

    本人博客全部迁至个人博客,柒情博客:http://www.ityw.club ,后续所有博客将在柒情博客上进行更新. 前阵子项目准备使用QQ第三方登录,需要使用QQ第三方登录的话需要申请QQ互联认证, ...

  9. 使用QQ互联完成网站的QQ第三方登录(详解+坑)

    前言:网站收尾工作,就只剩下第三方登录,去QQ互联注册,提交资料,审核了快一周,创建应用,一直创建不了,后来才发现是QQ互联的问题,耽误了两天又开始创建应用,终于弄好了,建议大家使用QQ第三方的,一定 ...

  10. web接入QQ第三方登录

    原文地址:https://blog.csdn.net/cwfjimogudan/article/details/54135957 这是第三方登录的第二篇,关于web接入微博第三方登录可以参考我之前的博 ...

最新文章

  1. docker desktop ubuntu镜像_资深专家都知道的顶级 Docker 命令!
  2. 信息系统项目管理师-成本效益分析
  3. iBatis学习第一天
  4. 深度学习导论(5)手写数字识别问题步骤
  5. 安装php7的mysql扩展,php7安装mysql扩展的方法是什么
  6. 西瓜书《支持向量机SVM》 原始形式推导+拉格朗日乘数法的SVM形式+SVM对偶形式推导+SMO算法推导
  7. TypeScript算法专题 - blog2 - 单链表节点的索引、结点删除与链表反转
  8. CocoStudio 简单使用动画
  9. java 关机命令_(windows )定时关机命令
  10. C++ socket编程实例
  11. 一款开源的微信小程序商城项目,接外包直接拿去改改,就能用。。。
  12. 无人机成测绘界“全能战士”
  13. 六大设计原则----依赖倒置原则
  14. 安装watchdog监控系统
  15. net mvc jQuery print 打印隐藏dom 除去页眉页脚
  16. 一篇文章揭穿创业公司的套路
  17. 【python】pygame 使用rect记录surface对象的位置并显示会造成卡顿(已解决)
  18. 爬取王者荣耀高清皮肤
  19. android git上开源的项目收藏
  20. python3 pdf 转 txt

热门文章

  1. power BI爬取网页数据方法
  2. 如何抓取图片php,PHP网络爬虫之图片抓取
  3. 新浪php工程师面试题
  4. 使用ContentProvider管理联系人
  5. php幻灯片图片不显示不出来,织梦dedecms默认模板幻灯片无法显示图片的解决方法...
  6. 将图片中的公式转化为latex代码(image to latex)。两种方法:python包或者snip软件
  7. 校园财务管理系统——数据库设计
  8. 读《三体_黑暗森林》
  9. 2021-02-13L:1652 2.08---2.141576L
  10. 推荐几个很实用的网址