#QQ整合登录
框架整合了QQ登录,这对众多使用HDPHP框架的同学来说是个好消息。
###重要提示
开发者QQ号码一旦注册不能变更,建议使用公司公共QQ号码而不是员工私人号码注册,以免遇到员工离职等情况造成不必要的麻烦。
申请地址:[http://connect.qq.com/](http://connect.qq.com/)
##简单教程
###配置
配置文件 Config/qq.php
```
"appid" => "",//qq互联提供的的APP ID
"appkey" => "", //qq互联提供的的APP KEY
"callback" => "http://www.kuaixuewang.com/qq/index.php/qqcallback" //登录成功的回调地址
```
路由设置
```
Route::get('qqcallback{_param_?}','Home/Index/qqcallback');
//路由的qqcallback方法要与配置项中的 callback 设置相切尔西
```
控制器
```
<?php namespace Home\Controller;
use Hdphp\Controller\Controller;
class IndexController extends Controller
{
//登录页面
public function index()
{
View::make();
}
//QQ登录提交地址
public function Qc()
{
Qq::qq_login();
}
//登录成功回调地址
public function qqcallback()
{
//Qq::qq_callback 方法将 access_token 与 openid 储存到session
//用于其他控制器或模块调用api使用
//Qq::token 方法将accesss_token与openid 储入对象属性
//这样才可以在本函数中执行 get_user_info 接口,否则需要刷新页面使session有效
Qq::token(Qq::qq_callback(),Qq::get_openid());
//调用获取用户信息 api 功能,qqcallback()回调中必须执行Qq::token()才可执行接口
//其他函数就不需要执行Qq::token()了
p(Qq::get_user_info());
}
//其他函数就不需要执行Qq::token(),可直接调用接口,因为access_token已经存在了session中
public function get_user_info(){
//所有 api 接口函数只能在执行完 qqcallback 回调后调用
//因为生成 access_token 与 open_id 的 session数据
//这是调用api接口的前提
p(Qq::get_user_info());
}
}
```
###登录页模板
```
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>QQ登录页面</title>
<script type="text/javascript">
var childWindow;
function toQzoneLogin() {
childWindow = window.open("{{U('Qc')}}", "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>
```
##方法列表
获取 open_id
```
Qq::get_openid();
```
获取登录用户的昵称、头像、性别
```
Qq::get_user_info();
```
获取登录用户在腾讯微博详细资料
```
Qq::get_info();
```
获取微博用户信息
```
Qq::get_info();
```
框架集成了官方SDK全部方法,使用方法就不一一列出了,大家请参考 [官方PHP sdk](http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD#SDKfor.E7.BD.91.E7.AB.99.E6.8E.A5.E5.85.A5) 使用方法
<br/><br/><br/><br/><br/><br/>
- 基础
- 框架特性
- 开发规范
- 许可协议
- 安装
- 伪静态
- 作者
- 更新日志
- 架构
- 入口文件
- 目录结构
- 系统常量
- 自动加载
- 应用目录
- 配置
- 设置配置
- 检测配置
- 获取配置
- 配置文件
- 扩展配置
- c 函数
- 函数
- 工具函数
- 控制器
- 定义
- 空方法
- 基本访问
- 路由
- 基础路由
- 控制器路由
- 路由参数
- 参数检测
- 分组路由
- RESTful
- 数据库
- 配置
- 核心操作
- 查询构造器
- 表操作
- 事务处理
- 函数
- 查询日志
- 模型
- 定义模型
- 模型动作
- 构建数据
- 模型验证
- 自动完成
- 自动过滤
- 字段映射
- 表单令牌
- 字段保护
- 视图模型
- 关联模型
- 魔术方法
- 视图
- 模板配置
- 模板文件
- 分配数据
- 请求响应
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 中间件与钩子
- 中间件
- 钩子
- 缓存
- 基础
- Mysql缓存
- 文件缓存
- 调试
- Trace
- 日志
- 调试模式
- 服务
- 介绍
- 创建服务
- 系统服务
- 自动完成
- 压缩&解压
- 自动验证
- 上传
- 字符串
- 响应
- 请求数据
- RBAC
- QQ整合登录
- 分页
- 邮件
- 语言
- 图像
- 生成静态
- 目录操作
- 数据处理
- curl
- 加密
- Cookie
- 验证码
- 购物车
- 备份
- 数组
- 支付宝
- xml
- 工具
- 云接口
- 前端组件
- 基本配置
- 列表框日期选择
- CSS 样式
- URL操作
- 数据验证
- 城市选择
- JSON处理
- 幻灯片
- checkbox滑动样式
- 消息框
- md5
- 模态框
- 上传表单样式
- 选择字体
- 剪贴板
- 上传图片
- 上传文件
- 拾色器 spectrum
- 列表框 select2
- 百度地图
- 二维码生成
- 表单提交
- 时间管理 moment
- 加载动画
- 百度编辑器
- Cookie操作
- 图标库 font-awesome
- emotion表情
- domReady
- 日期 datetimepicker
- 日期区间列表 daterangepicker
- 日期区间 daterangepicker
- 时间 clockpicker
- 图表
- 光标控制 caret
- 表单验证 bootstrapValidator
- 微信
- 配置项
- 绑定开发者
- 获取access_token
- 网页授权获取用户基本信息
- 微信支付
- 微信红包
- 用户管理
- 二维码
- 回复消息
- 消息管理
- 素材管理
- 会员组管理
- 事件管理
- 消息群发
- 客服
- 自定义菜单
- 菜单管理
- 菜单事件
- 附录
- 升级环境
- HTTP 状态码
- GIT 命令