QQ互联是腾讯旗下的开放平台,通过QQ互联网站主或开发者可以申请接入QQ登录,获取登录用户基本资料,用户使用QQ账号登录接入的站点或应用APP,通过分享功能,将站点内容分享到QQ、手机QQ、QQ空间、微博等平台,也可获取QQ会员信息、相册、日志、财付通等API授权。

注意:这个有别于腾讯的开放平台,虽然有些API是一样的,获取的数据也是一样的。

创建应用

我们可以使用 QQ 号码登陆 QQ 互联,然后进入管理中心,点击创建应用,在弹出的窗口中选择网站应用

填写网站接入的相关信息,你可以按照你的需求,填写这些信息,而这些信息在后面都是可以修改的,可以放心大胆的填写,其中需要注意的是平台需要验证网站,也就是在网站的首页头部

部分添加他提供的 meta。

点击创建应用以后,将自动跳转到该应用,从上面可以看到该应用的 APP ID 和 APP KEY,将这两个保存下来,下面会用到,完善应用的其它信息,点击应用的基本信息,可以编辑我们刚才创建应用时填写的内容,有备案号的网站最好把备案也填上,点击图标素材,上传平台指定尺寸的图片,仅支持PNG的图片格式,这样我们就算把应用创建完成了,接下来我们使用官方的SDK,让网站接入QQ互联开放平台。

下载SDK部署代码

本教程以 QQ 官方的SDK为例,介绍如何让网站接入 QQ 互联,为什么使用SDK我想大家都明白,自己去写这些方法和函数太费时费力了,利用 SDK 可以很好的帮助我们接入和避免一些安全问题。 我使用的 PHP SDK 2.1 的版本,下载地址:http://wiki.connect.qq.com/sdk下载,里面包含了基本的Demo,我们很方便的修改代码实现网站接入。

你可以将整个 SDK 上传到你网站的服务器上,然后访问 install 目录安装 SDK,他会在 /API/comm 目录生成一个 inc.php 的配置文件,里面以 JSON 的格式保存配置信息。

注意:使用本 SDK 时,请保证您的服务器的 short_open_tag  配置为 on。

SDK目录结构

我们将 SDK 解压以后,我们会得到以下的目录结构:

Connect2.1

├─API

├─doc

├─example

├─index.php

├─install

└─Readme php 2.1.txt

我们只需要 API 文件夹下面的文件,其它文件对我们而言只需要使用的时候在看。

在服务器部署文件

我的建议是在网站的根目录创建一个 oauth 文件夹,然后在这个文件里面创建 qq 文件夹,将 SDK 中 API 里面的文件复制到 qq 目录中,部署后的目录结构如下:

/oauth/qq

├─class

│    ├─ErrorCase.class.php

│    ├─Oauth.class.php

│    ├─QC.class.php

│    ├─Recorder.class.php

│    └─URL.class.php

├─comm

│    ├─config.php

│    ├─inc.php

│    └─utils.php

├─storage

└─qqConnectAPI.php

我们将 SDK 中 example/oauth 文件夹里面 callback.php 和 index.php 文件复制到 oauth/qq/ 文件夹,修改这两个文件里面引入的 qqConnectAPI.php 地址为 require_once(“qqConnectAPI.php”);。

注意:如果你的 comm 目录没有 inc.php 文件,你需要先安装 SDK,获取配置 SDK 的文件。

此时你可以访问 oauth/qq/ 目录,他会自动跳转到 QQ 的授权页面,当用户确认授权登陆以后,会跳转回我们设置的回调地址。

部署代码,没什么技术含量,但是如果部署的不合理,会走很多弯路,我就是在文件结构上面转了很多圈,才发觉这样的目录结构最能解决问题。

按照上面的方法,此时服务器部署的代码应该能够完成用户授权,接下我们来讲解如何获取用户的基本信息和应该保存那些重要的信息。 当用户点击QQ授权页的登陆以后,会跳转到我们设置的回调地址上面,而且会带有 2 个参数,分别是 code 和 state 代码,code 用于 SDK 从服务器获取用户的授权,state 据说是为了防止攻击,反正我不知道有什么用。

跳转到登陆授权页面

前面介绍的是直接复制 /example/oauth/ 里面的 index.php 文件,里面应该有以下的代码

require_once("qqConnectAPI.php");

$qc = new QC();

$qc->qq_login();

他会自动跳转到登陆授权页面,这其中如何实现跳转的,这里不在阐述,你可以打开 class/Oauth.class.php 文件查看其中的代码。

获取用户信息

在服务器的 callback.php 文件中,此时应该有如下的代码:

require_once("qqConnectAPI.php");

$qc = new QC();

echo $qc->qq_callback();

echo $qc->get_openid();

qq_callback() 方法返回 Access_Token,Access_Token 是我们回去用户信息的令牌,每次获取信息的时候都需要用到 access_token,也需要我们存储,不过 Access_Token 是有有效期的,Access_Token 的有效期默认是 3 个月,过期后需要用户重新授权才能获得新的Access_Token。

get_openid() 方法返回一个字符串 openid,openid 是网站上唯一对应用户身份的标识,网站需要将此 ID 进行存储便于用户下次登录时辨识其身份,或将其与用户在网站上的原有账号进行绑定。 在这个文件中,我们新加入下面的代码来获取用户详细信息:

$userinfo = $qc->get_info();

print_r($userinfo);

注意:此方法只能获取用户公开的信息,对于用户设置只能自己才能查看的信息不能获取到。 如果需要获取用户微博的资料,可以使用下面的代码

$arr = $qc->get_user_info();

print_r($arr);

你可以针对你的网站,保存用户的详细信息,然后自动为用户登陆,即可完成网站接入。

如何保存用户信息

openid 是确定用户的唯一标识符,所以我们必须存储。 对于 Access_Token 的储存,光是储存 Access_Token 是不够,还要储存 Access_Token 的有效期还有 refresh_token 信息,refresh_token 用于验证 Access_Token 的有效性。

access_token=FE04************************CCE2

expires_in=7776000

refresh_token=88E4************************BE14。

get_info() 方法可以获取用户的公开信息,比如昵称、地理位置、头像等,但是不能获取到用户的 QQ 号码和邮箱地址,你需要再次询问用户才能获取到完整的信息。

qq账号绑定服务器地址,网站接入 QQ 登录整合社交账号登录 - 文章教程相关推荐

  1. 网站接入QQ互联(JAVA版)

    简介: QQ互联是腾讯旗下的开放平台,通过QQ互联,网站主和开发者可以申请接入QQ登录.用户可以使用QQ账号登录接入的站点,通过添加分享和赞组件,将站点内容分享到QQ空间和朋友网,通过获取API授权, ...

  2. 网站接入QQ登录最新2020 java版本

    1.首先先注册账号,然后填资料审核,等个三四天吧大概 https://connect.qq.com/ 2.审核通过后点击创建应用,把备案号什么的都填(这个审核两天之内一般) !!! 这里有个重点,网站 ...

  3. 第三方插件的引用(4):JAVA网站接入QQ登录

    前言 为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注册的的需求也就由此而诞生 开发环境:  IDE: STS jdk版本: 1.8 框架: SSM 要做QQ第三方登录,首先得在QQ互联 ...

  4. 网站接入QQ登录过程(防踩坑)

    一个要留住用户的网站,经常会以通用的方式进行登录,手机号.微信.QQ.邮箱,这些登录都各有自己的规则,这篇文章记录一下接入QQ登录的过程,给大家梳理下,防止后来人踩坑. 1.进行开发者注册: 在QQ互 ...

  5. html 加QQ链接QQ版本不支持,网站接入QQ登录(JS版)【最新教程 04.10更新】,亲身失败百次的总结...

    开发阶段(偏后端的同学可以查看 PHP版 教程) 3.1. 因为 QQ互联 官网只是简单的提供了 JS-SDK 以及相关的 API,可能部分同学初见比较茫然.所以为了帮助同学们更好理解,我整理出以下内 ...

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

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

  7. 电脑登陆不了网页的服务器地址,电脑登陆qq打不开网页怎么设置

    当我们遇到上QQ不能打开网页的时候,其实这些都是电脑的DNS解析出问题了,怎么办.下面是学习啦小编为大家整理的关于电脑登陆qq打不开网页的相关资料,希望对您有所帮助! 电脑登陆qq打不开网页的解决方法 ...

  8. 腾讯云不同账号的服务器,网站如何迁移

    腾讯云两个不同账号的服务器,无法通过镜像进行网站迁移,比较好的方式是通过宝塔进行网站迁移, 在新的服务器上安装宝塔: centos版本命令:yum install -y wget && ...

  9. qq文件传输服务器ip,TP-Link通过获取QQ登陆服务器IP及封锁QQ登陆

    这个方法比较适合企业的一些网管,主要就是通过获得QQ登陆的IP然后对其IP进行屏蔽实现QQ无法登陆 这里我以TP-Link 541G+ 这款路由器为例子,其他的路由器也可以借鉴下面的方法 1.获得QQ ...

  10. html接入qq客服,Vue 前端框架接入QQ在线客服

    Vue 前端框架接入QQ在线客服,效果如下图: 后面就根据自己的需要选择不同的方式,下面是使用教程: ------------------------------------------------- ...

最新文章

  1. python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
  2. 不透明度opacity进阶
  3. Hadoop前期准备--centos7
  4. 【树莓派】树莓派SD卡系统镜像系统备份方法
  5. 全球与中国人脸语音生物识别市场”十四“五规模状况与前景趋势分析报告2021-2027年版
  6. windows mobile设置插移动卡没反应_ETC不用时,能不能把卡拔下来
  7. Android之使用PopupWindow使用和总结
  8. python中json如何存放字节数组中_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)...
  9. 浅谈FMA与SMA(test)
  10. python运维和开发实战-高级篇
  11. wincc7.0显示无法访问服务器,WinCC 7.0 SP3 安装时提示网络连接不可用,无法安装...
  12. teredo服务器文件,可用teredo服务器
  13. Google收购Urchin
  14. stream流的使用
  15. 计算机专业征兵,计算机应用工程系征兵宣传大会顺利召开──保家卫国,学子应征...
  16. java对于微信平台语音接收以及处理,语音下载以及arm格式转换MP3
  17. 2.4G有源智能电子学生卡SI24R1 SI24R2E
  18. Android中的指纹识别
  19. Android色彩特效处理之色调、饱和度、亮度、ColorMatrix精炼详解
  20. C、c++ .h 头文件的作用

热门文章

  1. 学校计算机硬件管理制度,学校规章制度之计算机硬件管理制度
  2. burst什么意思_burst是什么意思
  3. 数学建模十大算法01-蒙特卡洛算法(Monte Carlo)
  4. 小米平板2装win10(附驱动)
  5. 1.26赛尔号服务器维护时间,赛尔号稀有精灵出现时间大全(完全版)
  6. 失业日记 9月30日
  7. A Game of Thrones(8)
  8. Shaolin(map||set)
  9. 《社会智能与综合集成系统》—第1章1.6节 智慧涌现
  10. FPGA的学习:TFT_LCD液晶屏字符显示