项目需要做QQ、微博等登陆第三方的功能,第一次接触,虽然官网上有sdk,接口写的很好,调用即可,但是没有文档,看着头疼就自己写了

步骤不多说:

一、申请AppID和AppKey,申请地址:点击打开链接,说明 里面需要域名公安备案号,如果只是自己练手就随便写,审核虽然不通过但是也会给你AppId和AppKey,可以用自己的QQ进行登陆操作。

二、在登陆界面引入QQ登陆图标,按钮链接里面就是请求地址,填上自己的appId和回调地址即可

<a href="https://graph.qq.com/oauth/show?which=Login&display=pc&response_type=code&client_id=???&redirect_uri=???&scope=scope"class="icon connect-qq"><img src="${ctx}/images/Connect_logo_7.png"/></a>

三、点击登陆链接后会跳转到QQ授权登陆界面,如果用户确认登陆,就会跳转到回调地址,并且返回一个code值;

四、接下来就是oAuth2协议里面写的了,通过这个code值去获取QQ用户的access_token,通过access_token再置换用户的Open_Id,通过Open_Id再去获取用户信息。把里面自己的appid和Appkey填上就行了,我里面封装了一个通过url去请求数据的方法httpRequest();

public String QQLogin( String code ,HttpServletRequest request, HttpServletResponse response) throws BizException {//填写Appid,appkey和回调地址String url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=???&client_secret=???&redirect_uri=???&code=" + code;String responseStr = httpRequest(url);//获取access_TokenString tokens[] = responseStr.split("&");String token = tokens[0];String userUrl = "https://graph.qq.com/oauth2.0/me?" + token;String sr = httpRequest(userUrl);JSONObject result = JSON.parseObject(sr.substring(10, sr.length() - 3));//获取Open_IDString openId = (String) result.get("openid");//根据OpenId去获取用户信息String userinfoUrl = "https://graph.qq.com/user/get_user_info?" + token +"&oauth_consumer_key=appId&openid=" + openId;String userInfoText = httpRequest(userinfoUrl);JSONObject userInfoResult = JSON.parseObject(userInfoText);String nickName = (String) userInfoResult.get("nickname");String userIconUrl = (String) userInfoResult.get("figureurl");}return null;
}//http请求,链接urlpublic static String httpRequest(String url) {HttpURLConnection urlConnection = null;String responseStr = "";try {urlConnection = (HttpURLConnection) new URL(url).openConnection();urlConnection.setRequestProperty("Accept-Charset", "utf-8");urlConnection.setRequestProperty("contentType", "utf-8");urlConnection.connect();InputStream inputStream = urlConnection.getInputStream();responseStr = StreamToString.ConvertToString(inputStream);inputStream.close();} catch (IOException e) {e.printStackTrace();}return responseStr;}

五、到这里基本上就已经能够看到自己的QQ用户信息了,你可以把信息打印出来。

不过这种方法适合练手,大致了解QQ登陆第三方的过程,毕竟QQ已经有了很好的sdk,里面都做了很好的接口设计,不过我这边按照QQ对Java sdk的简介做了后总是报100020的错误,就是code被重复使用。不知道哪里错了,希望有大神指导。

QQ登陆第三方Demo(QQ互联)相关推荐

  1. java qq登陆 server_java实现QQ互联登录

    yml配置 server: port: 80 qq: oauth: http: //QQ互联中填写的网站地址 导入pom依赖 org.apache.httpcomponents httpclient ...

  2. QQ登陆,获取QQ用户信息

    一.登陆QQ互联,创建网站应用or移动应用 地址:http://connect.qq.com/ 1.获取appid和app key 2.设置网站地址和回调地址,注:回调地址是用户在网页中登陆QQ后,导 ...

  3. html手机qq登陆验证码,为什么qq登陆需要验证码?qq登陆需要验证码怎么取消?...

    为什么qq登陆需要验证码?qq登陆需要验证码怎么取消?很多用户在登陆qq时,总是需要输入验证码,一些用户表示很烦,那么大家知道为什么qq登陆需要验证码吗?如果不想每次登陆qq都需要验证码该如何取消呢? ...

  4. php接入qq登陆,网站接入QQ登录-腾讯开放平台

    完成开发者认证 使用qq登录完成实名认证,点击创建应用 创建网站应用 填写相关信息 回调域填写很重要如果填写错误扫码会出现 100010 [QQ登录]登录常见错误码 前端 这是目前网站接入的qq登录, ...

  5. 模拟QQ登陆,并按QQ号查询QQ基本资料

    [实例简介] 返回的qq基本信息有:(联系地址,用户年龄,用户邮箱,头像,个人网站,职业,邮箱,联系电话,简介,省份,真实姓名,毕业院校,性别,QQ号,昵称) 文件:590m.com/f/251271 ...

  6. ShareSDK⭐一、QQ登陆、获取QQ用户信息

    目录

  7. 第三方登陆--QQ登陆

    QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录网站/移动端. 在进行QQ登陆的实现之前,我们需要根据QQ互联的要求,进行相关的操作: 1.成为开 ...

  8. QQ和新浪微博登陆第三方的简单实现

    一.微博登陆第三方 0.去开发平台完成开发者认证:http://open.weibo.com/developers/basicinfo 创建一个示例应用,获取APPKey 1.登陆有两种方式:js+h ...

  9. java中如何实现qq登录与微博登录,QQ和新浪微博登陆第三方的简单实现

    一.微博登陆第三方 1.登陆有两种方式:js+html和WBML部署.以js+html为例,申请到APPKey之后,引入js,要替换掉appkey参数 2.部署html和js WB2.anyWhere ...

最新文章

  1. 上传文件大小的配置Webcong
  2. 【官宣·第一弹】2021中国肠道大会7条重要消息
  3. Solaris 操作
  4. .NET客户端的数据验证实例
  5. 改进 网站资源探测工具(添加代理)
  6. java底层编程_万字长文!从底层开始带你了解并发编程,彻底帮你搞懂Java锁!
  7. windows中使用scrapyd遇到的问题
  8. 突破开源Redis的内存限制,存算分离的GaussDB到底有多能“装”?
  9. captap生成验证码
  10. 《代码整洁之道:程序员的职业素养》一一1.1 清楚你要什么
  11. 如何判断真假“中台”?
  12. 外包软件开发时要避免的五个陷阱
  13. IBM 存储管理软件IBM DS Linux Storage Manager安装(Linux)
  14. 用华为模拟器ENSP构造校园网(第三天)配置总网络拓扑DHCP中继和实现路由通信
  15. SII9136添加HDCP功能
  16. kali linux 打不开终端的问题
  17. 2022最新话费充值系统源码+安装教程
  18. Ubuntu18.04修改iBus输入法快捷键
  19. MSN登陆不了怎么办
  20. 型车载DVD影音系统

热门文章

  1. 17个获取设计灵感创意必备网站
  2. 本科生毕业论文设计-论文总体-论文格式-查重经历
  3. POJ 1066 Treasure Hunt 解题报告
  4. Mac安装sshpass
  5. Python之旅.第十章.mysql.
  6. oracle判断字段为空时选用别的字段_oracle中使用sql查询时字段为空则赋值默认
  7. ( 蚁群算法总结)何涛
  8. Hadoop实战(二) 搭建Hadoop集群
  9. e2esoft VCam推流时推送声音
  10. 默哀这一刻 我们的心紧紧相连