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

news/2024/5/21 0:35:35/文章来源:https://blog.csdn.net/weixin_42519733/article/details/119259098

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

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

创建应用

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

b7185958a46cc16d32579c534886a9cb.png

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

部分添加他提供的 meta。

2d9e101f9d6f55de78135c13f0fc9d98.png

点击创建应用以后,将自动跳转到该应用,从上面可以看到该应用的 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 号码和邮箱地址,你需要再次询问用户才能获取到完整的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_832783.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

esp8266连接网站服务器,ESP8266连接本地服务器的51单片机汇编程序

ESP8266连接本地服务器的51单片机汇编程序本例采用at89c2051单片机,晶振11.096MHZ,通讯速率9600,TCP多连接方式,本地连接地址192.168.1.107,收发数据成功。一、硬件电路如下图二、下面是常见的AT命令:;服务…

数据结构与算法自学网站(快乐学习数据结构)

可视化数据结构与算法 带教程的数据结构操作: https://visualgo.net/zh 是我最喜欢的网站了,教程也很详细,想自学也可以点击Esc,离开并进入探索模式。并且随着数据图动态变化,旁边还有代码进行配套讲解。也可以自己绘…

如何解决网站首页老是被篡改经常反复被篡改

网站首页被篡改说明你网站程序有漏洞导致被上传了脚本后门木马 从而进行篡改内容被百度收录一些BC内容和垃圾与网站不相关的内容,建议找专业做安全的来进行网站安全服务漏洞检测与修补以及代码安全审计,清理网站后门和恶意代码,而且这个快照内容被劫持 会在搜索引擎…

如何将自己的网站上传至服务器并通过域名进行访问

前期准备 个人博客地址:http://www.zhsh666.xyz/ 我们想要让大家都能通过域名访问自己的网站,首先我们需要准备一个域名、以及一个服务器 域名购买可以通过腾讯云,阿里云,等,我用的是腾讯云服务器和腾讯云购买的域名 …

hexo教程:搜索SEO+阅读量统计+访问量统计+评论系统

hexo教程:搜索SEO阅读量统计访问量统计评论系统 更多精彩内容欢迎访问我的个人博客皮皮猪:http://www.zhsh666.xyz或者http://www.zh66.club期待您的光临哦!我是皮皮猪,感谢各位光临,能为您排忧解难小站深感荣幸!祝您生…

网站收录提交入口

> 更多精彩内容欢迎访问我的个人博客皮皮猪:http://www.zhsh666.xyz或者http://www.zh66.club期待您的光临哦!我是皮皮猪,感谢各位光临,能为您排忧解难小站深感荣幸!祝您生活愉快! 前些天自己搭建了一个…

我来教你如何将自己的网站上传至服务器并通过域名进行访问

如何将自己的网站上传至服务器并通过域名进行访问 欢迎关注公众号小帅搜,获取更多内容 前期准备 我们想要让大家都能通过域名访问自己的网站,首先我们需要准备一个域名、以及一个服务器 域名购买可以通过腾讯云,阿里云,等&#x…

win10 iis php虚拟目录访问,win10系统iis6部署网站时配置虚拟目录的操作方法

win10系统iis6部署网站时配置虚拟目录的操作方法?很多win10用户在使用电脑的时候,会发现win10系统iis6部署网站时配置虚拟目录的的现象,根据小编的调查并不是所有的朋友都知道win10系统iis6部署网站时配置虚拟目录的的问题怎么解决,不会的朋…

linux查看网站蜘蛛,网站如何快速识别百度蜘蛛?

经常听到开发者问,百度蜘蛛是什么?最近百度蜘蛛来的太频繁服务器抓爆了!最近百度蜘蛛都不来了怎么办?还有很多站点想得到百度蜘蛛的IP段,想把IP加入白名单,但IP地址范围动态变化不固定,我们无法对外公布。那么如何才能识别正确的…

java 访问家里网络IP_求助!!!!Java获取网站访问者IP

展开全部//获取ip地址public String getIpAddr(HttpServletRequest request) {String ip request.getHeader("x-forwarded-for");if(ip null || ip.length() 0 || "unknown".equalsIgnoreCase(ip)) {ip request.getHeader("Proxy-Client-IP"…

安卓封装网站源码_App封装打包是什么意思?App封装打包教程

很多企业或公司只有自己的公司网站,或者是一些开发者只有H5游戏,没有原生开发的App,想要开发原生App的成本又太高,这时就需要用到App封装打包。但是很多人都不太了解App封装打包是什么意思?我们今天就一起来了解一下Ap…

发布动态网站需要额外安装哪些软件_专为Win10打造的一款免费开源动态壁纸软件,可与WallpaperEngine媲美!...

前几天给我给大家推荐过一款比较好用的动态壁纸软件,Wallpaper Engine,有兴趣的朋友可以看看Wallpaper Engine不过当时推荐的是解锁版Wallpaper Engine,正版Wallpaper Engine,在Steam要卖19元。毕竟是解锁版,在很多功能…

网站PWA升级

渐进式网络应用 ( Progressive Web Apps ),即我们所熟知的 PWA,是 Google 提出的用前沿的 Web 技术为网页提供 App 般使用体验的一系列方案。PWA 本质上是 Web App,借助一些新技术也具备了 Native App 的一些特性。本文将详细介绍针对现有网站…

postMessage 两网站通信

前言: 本篇文章我将带大家一起来好好认识一下postMessage,包括它的兼容性,对应的API介绍,以及常见的几个使用场景,希望可以给有同样困惑的盆友们一点启发,给需要用这个技术的同僚们一些帮助. postMessage的定义 postMessage是html5引入的API,postMessage()方法允许来自不同源…

Django电商网站项目(1)--项目立项与结构设计

电商的7种商业模式 电商即电子商务(Electronic Commerce),是是以信息网络技术为手段,以商品交换为中心的商务活动,其有多种模式: ①B2B(Business to Business):电子交易的双方都是商家,使用网络技术完成商务交易&…

Django电商网站项目(2)--准备工作

准备工作 在前文中分析了用户数据表结构(如下),本文描述一些准备工作相关事项。 父模板页的抽象 Django中支持模板的继承与重写,在实际项目中,重复的页面结构很多,因此将父模板抽象,并在父模板中设置一些block用于…

Django电商网站项目(4)--商品模块

前文中已设计了与商品模块有关的表如下: 首页活动表用于展示一些活动图片(并附带活动链接); 首页轮播表用于展示一些轮播图片(具体轮播的效果在前端使用CSS完成); 首页展示表用于展示首页按分类排列后的一部分具体商品,展示方式意…

Django电商网站项目(6)--订单模块

设计的订单相关的表如下所示: 由于每一个订单中的商品种类与数量都不定,因此单独将订单商品提出为一个表,为一对多的关系。 订单的提交 从购物车页面提交是通过form形式提交的,在checkbox元素中定义参数value并设为对应的商品i…

Django电商网站项目(7)-部署与总结

将前述4个模块完成后项目的全部功能就完成了,在本地已经可以实现网站的基本功能(从用户注册到订单评论),但开启服务器时使用的是Django自带的测试用服务器,因此仍需要将其部署到真正的可用于工程的服务器上,即uWSGI,具…

flask网站项目(1)--项目立项与结构设计

项目工作流程 一、项目立项 该项目制作一个前后端分离的租房网站,前端以jQuery和art-template模板引擎为基础实现功能,后端以flask框架为基础,前后端之间使用json格式传递数据。 二、简单的需求分析 1、用户模块 ①用户注册,通过…