网站接入QQ登录最新2020 java版本

news/2025/2/4 3:54:35/

1.首先先注册账号,然后填资料审核,等个三四天吧大概

https://connect.qq.com/

在这里插入图片描述
2.审核通过后点击创建应用,把备案号什么的都填(这个审核两天之内一般)

在这里插入图片描述
!!! 这里有个重点,网站地址只能填一下,回调地址随便填一个,通过后可以随便改的

在这里插入图片描述

3. 整理java代码
我的是springBoot项目 先导入依赖,官网好像没有java版本的jar包了,我是找个网上坐标

     <!--QQ登录的包sdk--><dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version></dependency>

然后编写创建一个配置文件 qqconnectconfig.properties 名字建议一致,改完了以后复制粘贴即可

app_ID = 填成自己的ID 
app_KEY = 填成自己的KEY
redirect_URI = 填成自己的回调地址
grant_type=authorization_code
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

前端代码 这里的话 根据自己的实际情况

  <a href="/qqLogin" onclick="layer.msg('正在通过QQ登入', {icon:16, shade: 0.1, time:0})" ><img class="avatar size-S" src="img/qq.jpg" title="登陆">登陆</a>

后端java 跳转代码 这个直接复制粘贴记性

    //QQ登录的跳转@GetMapping("/qqLogin")public String qqLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {response.setContentType("text/html;charset=utf-8");try {String authorizeURL = new Oauth().getAuthorizeURL(request);return "redirect:" + authorizeURL;} catch (Exception e) {return null;}

这个时候网页是可以用的
在这里插入图片描述
然后编写java的回调代码
Crotroller类

    //QQ登录的回调@GetMapping("/qqLoginBack")public String  qqLoginBack(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws Exception {String code = request.getParameter("code");//获取到了用户信息Member member = QqService.LoginBack(code);return "redirect:/";}

services类,可能是jar版本太老了,jar的方法都不生效了,我就自己看着官方api文档发请求写了一个


@PropertySource("classpath:qqconnectconfig.properties")
@Service
public class QQServiceImpl {@Value("${app_ID}")private String appID;@Value("${app_KEY}")private String appKEY;@Value("${redirect_URI}")private String redirectURI;@Value("${grant_type}")private String grantType;@Resourceprivate MemeberMapper memeber;//根据code查询public Member LoginBack(String code)  {Member member = new Member();//获取accessTokenString  urlAccessToken = HttpUtil.get("https://graph.qq.com/oauth2.0/token?grant_type=" + grantType + "&client_id=" + appID + "&client_secret=" + appKEY + "&code=" + code + "&redirect_uri=" + redirectURI);//截取accessTokenString accessToken = StrUtil.subBetween(urlAccessToken, "access_token=", "&expires_in");if(!StrUtil.isBlank(accessToken)){//获取openIdString  urlOpenId = HttpUtil.get("https://graph.qq.com/oauth2.0/me?access_token="+accessToken);//截取openIdString openId = StrUtil.subBetween(urlOpenId, "openid\":\"", "\"}");if(!StrUtil.isBlank(openId)){try {//访问用户资料String userMessage = HttpUtil.get("https://graph.qq.com/user/get_user_info?access_token=" + accessToken + "&oauth_consumer_key="+appID+"&openid=" + openId);JSONObject jsonObject = JSONUtil.parseObj(userMessage);//获取用户姓名String nickname = (String)jsonObject.get("nickname");//获取QQ头像String nickImg = (String)jsonObject.get("figureurl_qq_1");//获取QQ性别String gender= (String)jsonObject.get("gender");//这里的随便怎么写}catch (Exception e){System.out.println(e);}}}return  member;}}

说一下QQ的执行流程吧

https://wiki.connect.qq.com/%E4%BD%BF%E7%94%A8authorization_code%E8%8E%B7%E5%8F%96access_token

在这里插入图片描述

主要的执行流程:
QQ页面登录后 ===> 会往回调函数里面穿一个code值, => 根据code值获取accessToken值 =>再根据accessToken值>获取openId值
再拿openId值去访问接口获取基本信息,这个我得注释写的很清楚了哈,具体的流程就是这样
在这里插入图片描述
问题一:,填了回调接口以下,只能回调到服务器上,回调不到本地?
答案:使用 第三方的映射工具,把本地的服务映射成域名.就可以.我在这里用的是小米球映射工具

问题二:QQ登录界面出现回调地址校验通知错误?
答案:在本地电脑上host目录里面配置一下

在这里插入图片描述


http://www.ppmy.cn/news/699400.html

相关文章

qq快捷登陆 php代码,qq互联--qq快捷登陆

1、介绍 QQ登录接口。作用是实现QQ直接登录某些网站&#xff0c;简化用户登录、注册流程。 现在有很多大型网站都在使用QQ互联登录功能&#xff1a; X东&#xff1a; X宁&#xff1a; X美&#xff1a; 2、签约 ①点击“应用管理” image.png ②如果资料没有审核通过的话&#x…

python打开qq并登录_python爬虫入门之qq登陆初探

不得不承认:这篇文章的方法有些小猥琐。 作为一个非专业人士,qq登陆这件事困扰我很长时间。在没有头绪满头乱撞的时候,无意间我发现了一件大杀器:splinter!!!这个python的第三方库会操纵你的浏览器(默认是火狐),打开页面,与网页进行交互。妈妈再也不用担心什么加密什么…

Python+Selenium-4:模拟用户登录QQ网页版

PythonSelenium-4&#xff1a;模拟用户登录QQ网页版 ​ QQ网站 : 点击直达 需求&#xff1a;点击右上角登录&#xff0c;再使用密码登录QQ 代码实例 from selenium import webdriver # 导入webdriver模块 from selenium.webdriver.common.by import By # 导入By模块 impor…

PC端 微信登陆 + qq登录

目录 1. 微信登录 2. QQ登录 1. 微信登录 官方文档地址&#xff1a;网页授权 | 微信开放文档 点击微信登录触发事件后&#xff0c;会跳转到微信授权页面&#xff0c;授权成功后页面自动跳转到回调地址页面&#xff0c;需在微信公众平台配置地址 // 微信登录wxLogin() {let…

html+css 制作简单QQ登录页面

HTMLcss制作简单QQ登录页面 这是效果图 这是HTML源码 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

实现qq一键登录

在实现acwing一键登录的基础上实现qq一键登录 acwing题解地址 需项目在自己的备案域名上运行 我实现好的网站地址&#xff1a; http://game.ilotus.top 1、前往qq互联进行开发者资料审核 https://connect.qq.com/devuser.html#/create/1/ 选择个人接入后填入个人信息 注&am…

html登录qq页面无法显示,仿手机QQ网页登陆页面

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼QQ安全登录 #qj{width:360px;height:600px;} div#tb{width:360px;;height:40px;background-color:#0083c5;} .tba{width:45px;height:38px;background-color:#0083c5;display:-moz-inline-box;position:relative;bottom:-2px;margi…

QQ登陆页面实现

iOS_28仿QQ空间登录与退出 2014-09-02 我来说两句 来源&#xff1a;pre_eminent的JAVA学习园地 收藏 我要投稿 最终效果图如下: 注意事项:<喎&#xfffd;"http://www.2cto.com/kf/ware/vc/" target"_blank" class"keylink">v…