第一步:先去qq互联进行创建网站应用:QQ互联 如下图:

第二步:引入qq的jar包,这里采用maven方式引用

 <!--QQ坐标--><dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version></dependency>

第三步:将资源文件放到如下图目录下面,注意名字(qqconnectconfig.properties)不能改变
qqconnectconfig.properties内容只能改前三行信息:

## qq用户授权信息
app_ID = 移动应用的appid
app_KEY = 移动应用的appkey
redirect_URI = 授权成功后的回调地址
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_info,get_other_info,get_fanslist,get_idollist,add_idol,del_idol,get_tenpay_addr,get_repost_list
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
awdTURL = 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


第四步:上controller代码

/*** @description: 获取qq授权链接* @return:*/@Login(false)@ApiOperation("获取qq授权链接")@GetMapping("/getQQAuthorizationUrl")public void getQQAuthorizationUrl(HttpServletRequest request, HttpServletResponse response) {response.setContentType("text/html;charset=utf-8");try {response.sendRedirect(new Oauth().getAuthorizeURL(request));} catch (QQConnectException | IOException e) {e.printStackTrace();logger.error("获取QQ授权链接失败!", e.getMessage());}}

第五步:获取授权的qq用户信息

/*** @description: 拉取qq授权用户信息* @return:*/public ResultVO<QqInfoDto> qqAuthorizateCabllBack(HttpServletRequest request, HttpServletResponse response) throws QQConnectException {QqInfoDto qqInfoDto = new QqInfoDto();AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);String accessToken = null, openID = null;// 用户授权的时候取消了if (StringUtils.isEmpty(accessTokenObj.getAccessToken())) {return ResultVO.error("用户取消授权!");}accessToken = accessTokenObj.getAccessToken();// 用户QQ的个人信息OpenID openIDObj = new OpenID(accessToken);openID = openIDObj.getUserOpenID();                         // onpenId是QQ用户的唯一标示UserInfo qzoneUserInfo = new UserInfo(accessToken, openID); //TOKENUserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();if(userInfoBean.getRet() < 0){return ResultVO.error(userInfoBean.getMsg());}BeanUtil.copyProperties(userInfoBean, qqInfoDto);return ResultVO.success("获取成功!", qqInfoDto);}

QqInfoDto返回实体类

package com.sport.sportcloudmarathonh5.dto;import com.qq.connect.javabeans.Avatar;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.io.Serializable;/*** @description: 微信授权用户信息* @author: zdj* @date: 2022/11/29 13:55* @Version:V1.0**/
@Data
public class QqInfoDto implements Serializable {@ApiModelProperty(value = "头像集合",hidden = true)private Avatar avatar = new Avatar("");@ApiModelProperty(value = "昵称", hidden = true)private String nickname;@ApiModelProperty(value = "性别(默认‘男’)",hidden = true)private String gender;@ApiModelProperty(value = "vip",hidden = true)private boolean vip;@ApiModelProperty(value = "level",hidden = true)private int level;@ApiModelProperty(value = "yellowYearVip",hidden = true)private boolean yellowYearVip;
}

全局返回实体ResultVO

package com.sport.sportcloudmarathonh5.vo;import java.io.Serializable;/*** @author zdj* @version 1.0* @date 2021-10-31 19:42:33*/
public class ResultVO<T> implements Serializable {private Integer code;private String message;private T data;private static <T> ResultVO<T> getInstance() {return new ResultVO<T>();}public static <T> ResultVO<T> token() {return response(300, "请登录", null);}public static <T> ResultVO<T> success() {return response(200, "success", null);}public static <T> ResultVO<T> success(T data) {return response(200, "success", data);}public static <T> ResultVO<T> success(String message, T data) {return response(200, message, data);}public static <T> ResultVO<T> error() {return response(500, "服务器异常", null);}public static <T> ResultVO<T> error(String message) {return response(500, message, null);}public static <T> ResultVO<T> error(String message, T data) {return response(500, message, data);}public static <T> ResultVO<T> exp() {return response(500, "服务器异常", null);}public static <T> ResultVO<T> response(Integer code, String message, T data) {ResultVO<T> instance = getInstance();instance.setCode(code);instance.setMessage(message);instance.setData(data);return instance;}public Integer getCode() {return code;}public ResultVO<T> setCode(Integer code) {this.code = code;return this;}public String getMessage() {return message;}public ResultVO<T> setMessage(String message) {this.message = message;return this;}public T getData() {return data;}public ResultVO<T> setData(T data) {this.data = data;return this;}
}

注释:qq授权登录java版本目前官方不提供了,所以这里记录下,方便后期使用

qq授权登录【网站应用】-java版本相关推荐

  1. Java实现QQ授权登录网站

    现在的很多网站 为了让用户可以快速登录 使用第三方QQ.微信.微博之类的授权登录     QQ互联的官网地址 1:先去QQ互联申请成为开发者 当审核通过之后  就可以创建一个应用 然后开发实际的登录效 ...

  2. WEB接入第三QQ授权登录

    /**  * 项目: b2b-pc  * 文件: QQAuthority.java  * 包名: com.b2b.pc.auth  * 日期: 2017年11月24日下午8:39:03  * Copy ...

  3. 使用友盟快速集成QQ分享与QQ授权登录

    友盟官方文档 我采用的是手动集成友盟的官方文档.下载SDK进行集成. 解压缩,选择自己需要的文件进行加入到Android Studio中. 由于这里我只需要QQ,那就把QQ文件夹中的所有文件拷贝一份到 ...

  4. Android应用实现QQ授权登录

    前一段时间在Android应用中实现了QQ授权登录功能,虽然腾讯开放平台中有详细文档,看完后也觉得很简单,实际操作中却折腾了挺久才搞定! 本来开始不熟悉的时候参照Demo来实现是很容易的,奈何官网给的 ...

  5. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)

    接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面我们一一起来看下如何通过QQ互联来实现第三方登录. ####申 ...

  6. android 9 qq登录,【报Bug】安卓离线打包targetSdkVersion设置28时,在安卓9.0手机上QQ授权登录闪退...

    详细问题描述 [内容] 安卓离线打包,targetSdkVersion设置为28,在安卓9.0手机上运行,下面这段QQ授权登录代码会导致应用闪退或应用重启.低于9.0系统的手机不会出现这个问题.如果t ...

  7. qq授权登录实现步骤

    第一步,下载qq授权登录的sdk 第二步:在清单文件中添加腾讯官方的activity ,具体代码在下方 Activity实现: public class MainActivity extends Ac ...

  8. php中qq授权登录,php实现qq授权登录

    第一步: 登录 https://connect.qq.com  qq授权管理中心开通应用,审核通过之后填写平台信息.如图: 值得一提的是网站回调域必须具体到方法,不然登录之后回调会识别错误. 第二步: ...

  9. 升级到IOS9以后,QQ授权登录和QQ分享出现问题,不能正常使用了

    手机升级到IOS9以后,QQ授权登录和QQ分享不能用了,不用着急,问题容易解决. 一.QQ登录问题解决 1.我们先将iphone真机(已经升级到ios9)连到电脑上,并通过xcode安装你的程序,然后 ...

最新文章

  1. Bootstrap 输入组
  2. 第46条:不要使用 dispatch_get_current_queue
  3. skywalking服务端_skywalking部署
  4. 科学家之殁,竟是区块链之过?
  5. MySQL(二):MySQL性能优化
  6. 菜单、toast、对话框的使用
  7. 【例7.4】 循环比赛日程表
  8. 人工智能数学基础之高等数学
  9. maven pom 文件的 scope,scope=system 时打包打不进
  10. 用计算机做电子贺卡送祝福,春节祝福电子贺卡模板制作
  11. ai画面怎么调大小_Adobe Illustrator(Ai)里怎么改变图像大小,快捷键是什么?
  12. ESX4 安装前的考虑
  13. Windows使用shipyard
  14. GDAL+Basemap+IDW(反距离权重)代替ARCPY,制作温度、降雨分布图
  15. RACI 职责分配矩阵 模型使用详解及案例分析
  16. Python自动打码,DdddOcr通用验证码自动识别库
  17. 【ART-PI】STM32H750XBH6 - 入手篇
  18. JavaScript:实现复制粘贴剪切功能
  19. 锁相放大器sr830_SR830数字锁相放大器
  20. Zabbix学习笔记(六)Zabbix的APi使用

热门文章

  1. python一行输出多个数据_python 如何将一系列数字十个一行输出
  2. 数据中台全景架构及模块解析!一文入门中台架构师!
  3. GIS地图瓦片、坐标转换基本概念
  4. AI助力黑客,下一代防火墙将力不从心
  5. 快递单证智能OCR识别,助力物流行业数字化升级
  6. snipaste滚动截图方法_如何在电脑上截图?教你3种常用的截图方法,利用快捷键效果最快...
  7. 阿姆达尔定律(Amdahl’s Law)
  8. 计算机专业实习计划包括哪些,计算机专业实习计划.doc
  9. 复习单片机:温度检测 DS18B20(内含:1 DS18B20 介绍+2 硬件设计+3 软件设计+4 实验现象)
  10. 数据库 三级封锁协议