一:准备工作
1. 注册申请标识自己网站的appid和appkey点击打开链接
2. 保证连接畅通,在自己的服务器上,ping graph.qq.com,保持连接通畅。
二:放置QQ按钮实现点击
1.按钮图片下载点击打开链接
2.添加前台代码:
<a href="#">
<img src="webResource/images/qqlog_inBig.png"></a>
三:获取Authorization_Code
打开浏览器,访问如下地址(请将client_id,redirect_uri,scope等参数(注意:以下url中所有的参数信息介绍都可以参照此链接)值替换为你自己的):https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=[YOUR_APPID]&redirect_uri=[YOUR_REDIRECT_URI]&scope=[THE_SCOPE]
注意:此处回调地址必须通过点击打开链接转变为UrlEncode编码。
例如回调地址是:http://www.sofywaregy.top/resturants.jsp,授权登陆后则会跳转到回调页面并且得到code值:http://www.sofywaregy.top/resturants.jsp?code=7465***ABD***********2AF598857F7
注意:注意此code会在10分钟内过期
三:使用Authorization_Code获取Access_Token
1.发送请求到如下地址,请将参数值替换为你自己的
https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=[YOUR_APP_ID]&client_secret=[YOUR_APP_Key]&code=[The_AUTHORIZATION_CODE]&state=[The_CLIENT_STATE]&redirect_uri=[YOUR_REDIRECT_URI]
(此处state:client端的状态值。用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。我填写为空)
2. 即可获取到Access Token:access_token=D8E****0FD65******7F4A7B79&expires_in=7776000&refresh_token=541096***D5254*******69B9103
注意:获取到的access token具有3个月有效期,用户再次登录时自动刷新。
四:使用Access Token来获取用户的OpenID
1. 发送请求到如下地址(请将access_token等参数值替换为你自己的):
https://graph.qq.com/oauth2.0/me?access_token=D8EE4****D6***********F7F4A7B79
2.回调结果如下,获取到OpenID:
callback( {"client_id":"101*****206","openid":"AD35D***8EB67**********2F71C9E2"} );
五:使用Access Token以及OpenID来访问和修改用户数据
1. 建议网站在用户登录后,即调用get_user_info接口,获得该用户的头像、昵称并显示在网站上,使用户体验统一2. 调用其他OpenAPI,以访问和修改用户数据。所有OpenAPI详见API列表。
以调用get_user_info接口为例:
(1)发送请求到get_user_info的URL(请将access_token,appid等参数值替换为你自己的):
https://graph.qq.com/user/get_user_info?access_token=D8EE49**********4A7B79&oauth_consumer_key=101**6206&openid=AD3**849F8E********C012F71C9E2
(2)成功返回后,即可获取到用户数据,返回结果如下:
{ "ret": 0, "msg": "", "is_lost":0, "nickname": "“你对**我**道”", "gender": "男", "province": "", "city": "", "year": "19**", "figureurl": "http:\/\/qzapp.qlogo.cn\/qzapp\/1014**206\/AD35D849F8EB6744F85B1C012F71C9E2\/30", "figureurl_1": "http:\/\/qzapp.qlogo.cn\/qzapp\/101466206\/AD35D849F8EB6744F85B1C012F71C9E2\/50", "figureurl_2": "http:\/\/qzapp.qlogo.cn\/qzapp\/101**66206\/AD3**849F8EB**85B1C012F71C9E2\/100", "figureurl_qq_1": "http:\/\/thirdqq.qlogo.cn\/qqapp\/101466206\/AD35D849F8EB*******B1C012F71C9E2\/40", "figureurl_qq_2": "http:\/\/thirdqq.qlogo.cn\/qqapp\/101466206\/AD35D849F8EB6******1C012F71C9E2\/100", "is_yellow_vip": "0", "vip": "0", "yellow_vip_level": "0", "level": "0", "is_yellow_year_vip": "0" }
六:获取用户数据成功
根据网站需要,对于qq登录访问本网站的用户数据进行处理,结束。
备注:这些只是本人对于应用qq互联实现第三方qq登录的总结概述,对于更详细的接
入流程请参照官方接入文档