🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#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/>