#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 命令