当前位置:首页 > 实用技巧 >

qq账号网页登录(qq账号回收平台)

来源:原点资讯(www.yd166.com)时间:2023-07-31 21:57:06作者:YD166手机阅读>>

# QQ互联注册一个账号

网站地址:https://connect.qq.com/,添加一个应用,具体怎么申请以及需要填写的信息,腾讯官网有详细文档。注册并完成相应信息填写后,可以在应用管理中查到应用的APP ID和APP Key。(注,这个申请还是比较麻烦的,申请了好几次,可能是脸黑吧)成功后如下图:

qq账号网页登录,qq账号回收平台(1)

还需要添加一个回调地址,如下图:

qq账号网页登录,qq账号回收平台(2)

加入jar包

<!-- 第三方QQ登录 --> <dependency> <groupId>com.qq</groupId> <artifactId>Sdk4J</artifactId> <version>2</version> </dependency>

登录页面

<button type="submit" class="btn btn-default" onclick="qqLogin()">qq登录</button> function qqLogin() { window.open("/login/qqLogin","TencentLogin"); }

qq账号网页登录,qq账号回收平台(3)

Controller编写

package com.gbq.boot.web.controller; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.gbq.boot.web.bean.User; import com.gbq.boot.web.comment.qqLoginComment.AuthComment; import com.gbq.boot.web.service.UserService; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.redirectAttributes; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; /** * 登录Controller * @author 阿前 * 2019年1月4日09:48:21 */ @RestController @RequestMapping("/login") public class LoginController { @Resource private UserService userService; @Resource private AuthComment authComment; @RequestMapping("/index") public ModelAndView index(@ModelAttribute("user") User user) { return new ModelAndView("/shop/index","user",user); } @RequestMapping("/login.html") public ModelAndView toLogin() { return new ModelAndView("login"); } @RequestMapping("/qqLogin") public void qqLogin(HttpServletResponse response)throws Exception{ //随机产生字符串 String state = StrUtil.uuid(); String url = authComment.getAuthUrl(state); System.out.println(url); //重定向 response.sendRedirect(url); } @GetMapping("/redirect") public ModelAndView getData(@RequestParam(value = "code") String code, RedirectAttributes model){ //获取token String accessToken = authComment.getAccessToken(code); System.out.println("accessToken" accessToken); //获取openid String openId = authComment.getOpenId(accessToken); System.out.println("openId" openId); //获取用户信息 JSONObject userInfo = authComment.getUserInfo(accessToken, openId); String myName = userInfo.getString("nickname"); User user = new User(null, "","111111",myName, System.currentTimeMillis(),"是", userInfo.getString("figureurl_2"), userInfo.getString("gender") ,1,1,"", "", openId); //通过openId查询 User usr = userService.findUsrByOpenId(openId); if (null != usr){ user.setId(usr.getId()); userService.updateById(user); }else { userService.insert(user); } model.addFlashAttribute("user", user); //重定向 return new ModelAndView("redirect:/login/index"); } }

AuthComment类编写

package com.gbq.boot.web.comment.qqLoginComment; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.stereotype.Component; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.regex.Matcher; import java.util.regex.Pattern; import static org.apache.commons.io.IOUtils.toByteArray; @Component public class AuthComment { //QQ 登陆页面的URL private final static String AUTHORIZATION_URL = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&redirect_uri=%s&scope=%s"; //获取token的URL private final static String ACCESS_TOKEN_URL = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=%s&client_secret=%s&code=%s&redirect_uri=%s"; // 获取用户 openid 的 URL private static final String OPEN_ID_URL = "https://graph.qq.com/oauth2.0/me?access_token=%s"; // 获取用户信息的 URL,oauth_consumer_key 为 apiKey private static final String USER_INFO_URL = "https://graph.qq.com/user/get_user_info?access_token=%s&oauth_consumer_key=%s&openid=%s"; // 下面的属性可以通过配置读取 // QQ 在登陆成功后回调的 URL,这个 URL 必须在 QQ 互联里填写过 private static final String CALLBACK_URL = "http://127.0.0.1:8080/login/redirect"; // QQ 互联应用管理中心的 APP ID private static final String APP_ID = "你的id"; // QQ 互联应用管理中心的 APP Key private static final String APP_SECRET = "你的key"; /** * QQ 登陆页面的URL * @param scope * @return */ public String getAuthUrl(String scope) { return String.format(AUTHORIZATION_URL, APP_ID, CALLBACK_URL, scope); } /** * 获取Access Token值 */ public String getAccessToken(String code){ String ur = String.format(ACCESS_TOKEN_URL, APP_ID, APP_SECRET,code, CALLBACK_URL); String compile = "access_token=(\\w*)&"; String result = this.getUrl(ur); return this.getMatcher(result,compile); } /** * 获取openId * @param accessToken * @return */ public String getOpenId(String accessToken) { String url = String.format(OPEN_ID_URL, accessToken); String compile = "openid\":\"(\\w*)\""; String result = this.getUrl(url); return this.getMatcher(result,compile); } /** * 获取qq用户信息 * @param accessToken * @param openId * @return */ public JSONObject getUserInfo(String accessToken, String openId) { String url = String.format(USER_INFO_URL, accessToken, APP_ID, openId); String result = this.getUrl(url); return JSON.parseObject(result); } private String getMatcher(String result,String compile) { //使用正则表达式解析网址 Pattern p = Pattern.compile(compile); Matcher m = p.matcher(result); m.find(); return m.group(1); } //解析url private String getUrl(String ur) { try { URL url = new URL(ur); HttpURLConnection conn = null; conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5 * 1000); conn.setRequestMethod("GET"); InputStream inStream = conn.getInputStream(); byte[] data = toByteArray(inStream); String result = new String(data, "UTF-8"); System.out.println(result); return result; } catch (IOException e) { e.printStackTrace(); } return null; } }

此处不再编写userService

成功会返回json串

qq账号网页登录,qq账号回收平台(4)

其中主要需要的是,nickname——qq名称,figureurl_qq_x——不同尺寸的qq头像,等等等等!

登录成功跳转到页面

qq账号网页登录,qq账号回收平台(5)

qq账号网页登录,qq账号回收平台(6)

成功后的页面index

<span>欢迎你,${user.name}</span>

freemarker配置

注意我使用的是freemarker模板,给大家贴上freemarker配置,以及mvc配置

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>freemarker: template-loader-path: classpath:/templates/ # 是否启用模板缓存。 suffix: .ftl cache: false # 模板编码。 charset: UTF-8 # 是否检查模板位置是否存在。 check-template-location: true content-type: text/html #是否启用freemarker enabled: true mvc: view: prefix: /templates/ suffix: .html static-path-pattern: /static/**

至此全文结束。欢迎点赞转发支持一波~~~

栏目热文

qq网页版在线直接登录(qq网页版登录入口)

qq网页版在线直接登录(qq网页版登录入口)

在pc互联网时代,腾讯QQ是中国最大的聊天软件,几乎每个人的桌面都有一个企鹅图标。许多人都知道微信推出过网页版,但很少人...

2023-07-31 22:04:29查看全文 >>

qq网页版登录注册(qq网页版一键登录)

qq网页版登录注册(qq网页版一键登录)

首先呢注册的前提条件是必须得有手机号哦,因为它在注册的时候需要你填写手机号然后声明这个注册每天可以刷新三次,说不定可以刷...

2023-07-31 22:06:04查看全文 >>

qq官方网页版登录入口(qq空间官方网页版登录入口)

qq官方网页版登录入口(qq空间官方网页版登录入口)

之前我和大家提过,我要购买第三方的APP服务,就相当于有自己的APP了,现在APP对接上线之前需要做大量的准备工作,在此...

2023-07-31 22:29:32查看全文 >>

北海国际帆船大赛开幕

北海国际帆船大赛开幕

12月13日,“一带一路”国际帆船赛北海站开幕式在北海银滩一号隆重举行。“一带一路”国际帆船赛由中国帆船帆板运动协会、广...

2023-07-31 21:50:27查看全文 >>

潍坊北海帆船比赛(2022年北海帆船比赛事故)

潍坊北海帆船比赛(2022年北海帆船比赛事故)

【体谈】奔涌吧!少年!!山东省帆船帆板锦标赛在滨海拉开帷幕(潍坊市广播电视台新媒体记者:王天田 张兴华),...

2023-07-31 22:21:51查看全文 >>

qq官方网页版登录(QQ网页版登录入口)

qq官方网页版登录(QQ网页版登录入口)

[闽南网]­ 12月12日,腾讯在 WebQQ 页面发布公告称,由于业务调整,WebQQ 即将在 2019 年 1 月 ...

2023-07-31 21:53:42查看全文 >>

qq官方网页版登录界面(qq微云网页版登录界面)

qq官方网页版登录界面(qq微云网页版登录界面)

QQ登陆界面(网页截图)【综合】去年3月的时候,腾讯曾灰度测试过QQ账号注销功能,不过这项服务很快就被悄然下架。当时,腾...

2023-07-31 22:36:31查看全文 >>

qq简洁模式壁纸粉色系(qq通用简洁模式有关紫色的壁纸)

qq简洁模式壁纸粉色系(qq通用简洁模式有关紫色的壁纸)

分享一些好看的背景图和壁纸,喜欢的友友可以继续关注哦。,...

2023-07-31 22:23:54查看全文 >>

qq极简模式全屏壁纸(qq简洁模式壁纸背景图片)

qq极简模式全屏壁纸(qq简洁模式壁纸背景图片)

图片源于网络,侵删致歉!,...

2023-07-31 22:04:46查看全文 >>

文档排行