由于楼主是web开发方向,所以这里就介绍一下web接入qq登录的方法,以及和app的qq登录打通的方法

0、前提

已经有一个在工信部备案过的域名的网站,具体可以查询工信部的备案页面(请注意这里的信息很重要,会影响之后qq登录申请时的资料填写)

工信部查询域名备案的网址:http://www.miitbeian.gov.cn/publish/query/indexFirst.action

1、去QQ互联申请应用(腾讯有很多个平台,网页的QQ登录一定是在QQ互联申请,App的是在腾讯开放平台)

QQ互联的网址:https://connect.qq.com/

1.1 成为开发者,并用开发者账号登录(如果之后要和在腾讯开放平台申请的App的QQ登录打通的话,请使用相同的开发者账号登录)

1.2 选择创建网页应用

1.3 填写基本信息

此处填写的网站名称必须与工信部域名备案查询页面的“网站名称”一栏填写一样的,否则将无法通过QQ互联的审核

1.4 完善资料

网站域名需要填写带http://或者https://的完整域名

网站回调域,需要填写完整的回调地址,

比如你的回调页面是放在 /网站根目录/qq_oauth/callback.php

那么网站回调域需要填写 http://域名/qq_oauth/callback.php

在QQ互联改版之前是支持填写多回调域的,比如有一个测试环境 http://dev.example.com 和一个正式环境 http://www.example.com

那么网站回调域可以填写为 http://www.example.com/qq_oauth/callback.php;http://dev.example.com/qq_oauth/callback.php

两者用分号分隔开,新版的QQ互联暂时没有测试过这个功能

提供方建议和工信部域名备案查询页面的“主办单位名称”一栏填写一样的

网站备案号必须与工信部域名备案查询页面的“网站备案/许可编号”一栏填写一样的

图标可以不传

1.5 完成创建,等待QQ互联的审核(这个审核如果资料和工信部备案的填写的一致,那么还是挺快就能获得通过的,楼主的经验是1-2天)

2、通过审核之后,能获取到app id和app key

这时候,使用官方的sdk,就能快速完成开发(楼主用的是php的sdk,第三方登录和获取用户信息,亲测可用)

这里要提醒的是,配置文件 /API/comm/inc.php 中

“callback”需要和在QQ互联填写的网站回调域保持一致(QQ互联中,如果填写的是两个环境的,那么此处根据环境不同填写一个回调地址)

两边回调地址填写的不同会造成调不通

3、如果网站的QQ授权回调已经调通,需要打通App的QQ登录和网站的QQ登录,那么请接着往下做

3.1 如图中所需资料,发送邮件给 connect@qq.com

网站ICP备案信息截图即可用工信部备案信息查询页面的截图

3.2 耐心等待回信(这个要看运气了,快的话当天就能收到回复,否则可能需要7天)

3.3 收到回信,为打通App和网站的QQ登录修改代码

网站和App的App Id和App Key并未改变,通过两套获取到的openid也是不同的,只是通过获取openid时多加一个 unionid=1 的参数,QQ将会多返回unionid,打通的网站和app的unionid是一致的(像微信那样了),需要根据unionid是否一致来判断网站来的用户是否和app来的用户为同一个QQ账户

如果是使用官方的php的sdk包的,可以参照如下操作

在callback时候,原来会$qc->get_openid(); 获取openid,这时候改成同时获取openid和unionid

3.3.1 在/API/class/Oauth.class.php中找到public function get_openid()

//-------请求参数列表$keysArr = array("access_token" => $this->recorder->read("access_token"),"unionid"   =>  1);

请求参数列表增加第二行

//------记录openid$this->recorder->write("openid", $user->openid);$this->recorder->write("unionid", $user->unionid);

多增加一条记录

return Array('openid'  =>  $user->openid,'unionid'    =>  $user->unionid);// return $user->openid;

返回从仅返回openid,改为同时返回openid和unionid

3.3.2 callback文件中,同时接收openid和unionid

$open_id_result = $qc->get_openid();$open_id = $open_id_result['openid'];
$union_id = $open_id_result['unionid'];

这样就完成了web端的打通的工作(当然app或者服务端也需要做unionid的相应改动)

补充:

关于app如何打通的问题,这里做个介绍,qq官方的app的sdk是只能获取到access_token和openid的,而不能获取到unionid

所以app在获取了access_token之后,需要再发送一个请求到以下地址就可获取到unionid(绑定了的app和web,app的access_token和web的access_token都可以获取到相同的unionid,楼主亲测有效有效哦)

https://graph.qq.com/oauth2.0/me?access_token=ACCESSTOKEN&unionid=1

【第三方登录】第三方登录 Part1 —— QQ登录(2016-09最新版)相关推荐

  1. java加按钮_如何从零开始对接第三方登录(Java版):QQ登录和微博登录

    阅读本文约需要8分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了HashMap和TreeMap的知识,今天跟大家分享下对 ...

  2. 如何从零开始对接第三方登录(Java版):QQ登录和微博登录

    前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了QQ和微博这2大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接. 后台设 ...

  3. pyqt5登录界面设计——模仿qq登录界面,可登录注册(数据库)

    pyqt5登录界面设计--模仿qq登录界面 一.简单易用的可直接登录的界面--账号密码程序写死 1.1.效果图: 1.2.视频效果图 3.代码说明 4.使用示例 5.全部源码见: 二.带数据库的可登录 ...

  4. Laravel第三方登录开发之实现QQ登录

    在我们的项目开发中,第三方登录可以很好的为用户提供便捷,比如微信.QQ.微博登录等等. Laravel,作为一个优雅的PHP框架,已经集成了诸多第三方登录插件. 本文,将详细论述如何在Laravel框 ...

  5. java中如何实现qq登录与微博登录,如何从零开始对接第三方登录(Java版):QQ登录和微博登录(2)...

    到了这一步基本上涉及第三方的就结束了,是不是很简单?后面无非就是如何插入.如何存放token.写入session等. 有几点注意事项: 相关文档官网已经写得非常细了,但是相当乱: 这个我就不详细讲了, ...

  6. pc版qq登录及移动版qq登录的申请过程

    1.在哪里接入? 网站接入QQ登录在QQ互联(https://connect.qq.com)上创建:移动应用也可以在QQ互联(https://connect.qq.com)上创建,但是不推荐如此,可以 ...

  7. php新浪微博 登录接口文档,qq登录,新浪微博登录接口申请过程中遇到的问题

    接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...

  8. php模拟qq登录登录代码,PHP模拟QQ登录

    原理是用curl模拟发送post登录,cookie保存本地 这里代码理论可以支持永久单挂QQ <?php //http://blog.qita.in 非技术[S.T] $qqno='你的QQ'; ...

  9. 用其他账号登录插件 php,HYBBS QQ登录插件使用详解

    首先通过HYBBS管理员后台-插件-线上: 找到QQ登录 进行下载 下载成功回到我的插件列表 第一步启用插件 第二部点击安装 随后确定执行安装插件 安装成功 来到插件页面  点击配置 此时 我们需要提 ...

最新文章

  1. Android studio Day01-23
  2. ggbiplot设置分组_R语言安装ggbiplot
  3. IntelliJ IDEA母公司JetBrains遭美国调查,其是美国被大规模黑客攻击的源头?
  4. scikit-learn学习之贝叶斯分类算法
  5. Android Glide数据更新及内存缓存、硬盘缓存清理
  6. Qt5类之QLine and QLineF
  7. 软考中高项学员:2016年4月13日作业
  8. 金晨想在无人车上劈叉,撒贝宁与数字祝融号对话…这届百度世界大会,有被惊艳到...
  9. TODS:从时间序列数据中检测不同类型的异常值
  10. 前端轻量级的toolTip插件-Tippy.js
  11. onenote 导出为 html,Exporting or convert OneNote 2010 to HTML, not MHTML
  12. bugku——宽带信息泄露(RouterPassView 查看路由器配置信息)
  13. 使用7号电池的科学计算机,新奇:可以用USB充电的5号、7号电池
  14. 弘辽科技:拼多多这样提升销量才能加权
  15. 数字水印进阶篇——基于DWT-SVD的数字水印(附matlab代码)
  16. 连续10年霸榜第一?程序员「最常用」的编程语言是它?
  17. 有利可图的NFT,NA公链(Nirvana Chain)NAC公链怎么面对高额Gas费的?
  18. Canvas画钟 js
  19. 【C语言程序设计】实验 8
  20. 1.2 行列式的性质和计算

热门文章

  1. 关于.NET报表中图表控件线条颜色和粗细设置
  2. 前端开发vue技术栈程序员的vs code插件分享
  3. 小米总监汇总的几点软件测试方法~
  4. 6.cisco思科模拟器子网划分练习题
  5. 一、Windows系统下安装Tensorflow2.x(2.6)
  6. 愿你熠熠生辉 自成光芒!清微智能祝所有女神节日快乐~
  7. stl如果开o2_Flow-3D地形模型处理
  8. 光标突然由竖线变成小黑块怎么解决?
  9. 平开式窗帘有哪些选购要点?-好佳居窗帘十大品牌
  10. 银河麒麟 安装PL2303GC USB转串口驱动