# QQ登录
QQ登录组件可以让我们快速实现网站中qq登录的功能。
### 重要提示
开发者QQ号码一旦注册不能变更,建议使用公司公共QQ号码而不是员工私人号码注册,以免遇到员工离职等情况造成不必要的麻烦。
申请地址:[http://connect.qq.com/](http://connect.qq.com/)
其他产品也可以使用该组件,请登录 [GITHUB](https://github.com/houdunwang/qq) 查看源代码与说明文档。
[TOC]
# 开始使用
#### 登录模板
```
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QQ登录页面</title>
<script type="text/javascript">
var childWindow;
function toQzoneLogin() {
childWindow = window.open("login.php", "TencentLogin", "width=850,height=520,menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");
}
function closeChildWindow() {
childWindow.close();
}
</script>
</head>
<body>
<a href="#" onclick='toQzoneLogin()'>qq登录</a>
</body>
</html>
```
#### 后台提交代码
本代码是在点击前台模板的QQ登录按钮后执行的后台代码,用于向QQ发起登录请求。
login.php 就是前台登录模板中填写的后台地址。
```
<?php
$config = [
"appid" => "",//qq互联提供的的APP ID
"appkey" => "", //qq互联提供的的APP KEY
"callback" => "http://www.houdunren.com/callback.php" //登录成功的回调地址
];
$obj = new \houdunwang\qq\Qq($config);
$obj->qq_login();
```
#### 登录回调代码
QQ处理完登录后的回调地址
文件为配置项定义的文件 callback.php
```
/**
* Qq::qq_callback 方法将 access_token 与 openid 储存到session
* 用于其他控制器或模块调用api使用
* Qq::token 方法将accesss_token与openid 储入对象属性
* 这样才可以在本函数中执行 get_user_info 接口,否则需要刷新页面使session有效
**/
$config = [
"appid" => "",//qq互联提供的的APP ID
"appkey" => "", //qq互联提供的的APP KEY
"callback" => "http://www.houdunren.com/callback.php" //登录成功的回调地址
];
$obj = new \houdunwang\qq\Qq($config);
$access_token = obj->qq_callback();
$openid = obj->get_openid();
obj->token($access_token,$openid);
//调用获取用户信息 api 功能,qqcallback()回调中必须执行Qq::token()才可执行接口
print_r(obj->get_user_info());
```
## 方法列表
除了登录回调函数其他Api函数就不需要执行 $obj->token()方法了,可直接调用接口,因为access_token已经存在了session中了。
#### 获取 open_id
```
Qq::get_openid();
```
#### 获取用户昵称、头像、性别
```
Qq::get_user_info();
```
####获取登录用户在腾讯微博详细资料
```
Qq::get_info();
```
#### 获取微博用户信息
```
Qq::get_info();
```
> 框架集成了官方Api全部方法,使用方法就不一一列出了,大家请参考 [官方PHP sdk](http://wiki.connect.qq.com/api%E5%88%97%E8%A1%A8) 使用方法。
- 文档已经迁移到后盾人
- 介绍
- 框架特性
- 开发规范
- 许可协议
- 作者向军
- 安装框架
- 更新框架
- 基础
- 入口文件
- 应用配置
- 优雅链接
- 目录结构
- 系统常量
- 自动加载
- 应用密钥
- 系统函数
- CSRF保护
- 依赖注入
- 跨域访问
- 配置
- 配置文件
- 基本功能
- 扩展配置
- c 函数
- 控制器
- 定义声明
- 基本使用
- 相关函数
- 响应消息
- 路由
- 基础知识
- 基础路由
- 路由参数
- 参数检测
- 依赖注入
- 控制器
- 分组路由
- RESTful
- 别名路由
- 数据
- 配置相关
- 核心操作
- 查询构造器
- 日志记录
- 分页处理
- 事务处理
- 函数相关
- 数据库
- 数据迁移
- 数据填充
- 模型
- 定义模型
- 模型动作
- 模型验证
- 自动完成
- 自动过滤
- 字段保护
- 数据填充
- 多表关联
- 分页处理
- 仓库
- 数据仓库
- 查询规则
- 视图
- 基础知识
- 模板配置
- 模板文件
- 分配数据
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 视图函数
- widget
- vue组件
- 中间件
- 中间件
- 缓存
- 基本操作
- 文件缓存
- 数据表缓存
- 服务
- 服务容器
- 定制服务
- 相关函数
- 请求
- 基本使用
- 请求扩展
- 测试
- 基础知识
- 基本使用
- HTTP测试
- 调试
- 调试模式
- 日志管理
- 组件
- 多语言
- 响应处理
- Cookie
- Session
- 验证码
- XML
- 自动验证
- 文件处理
- 压缩解压
- RBAC
- 数组增强
- 分页管理
- 图像处理
- 生成静态
- 加密解密
- 字符串
- 数据集合
- 工具服务
- 目录操作
- 邮件发送
- CURL
- QQ登录
- 数据备份
- 购物车
- 日志处理
- 命令组件
- 二维码
- 后盾云
- 日期处理
- 阿里
- 支付宝
- 阿里云直播
- 阿里云短信
- 阿里云邮件
- 阿里云OSS
- SOCKET
- 启动与关闭
- 前端
- 微信