thinkphp系列之--网站接入QQ登录

发布时间:1970-01-01  编辑:Mrs.默先森 

    在我大天朝,企鹅这东西是人人都有的,对于我们来说方便之极(信息太多),对于登录功能来说,使用QQ登录已经简直不能再方便了,简单省事,最主要的是不用自己去写那些重复再重复的代码,不管你现在用不用qq连天,它都曾经存在过,并且依然存在着...

    那么首先您需要知道这个网站:https://connect.qq.com,其次你还需要有一个能正常使用的qq号码。

    点击首页的应用管理,没有登录的就先去登录吧,你会看到下面这个界面,需要做的非常简单,点击你的头像,按照要求填写资料,比较重要的是手持证件照,很多人都因为他不过,像我这样长得帅气点,就非常好通过了,这个审核时间比较短,填完之后抽根烟功夫基本就通过了。1497542952492201.png

    ok,资料审核通过之后点击创建应用--选择创建网站应用;按照要求依次填写以下资料,然后,就静静地等待、等待...1497543394418692.png

    然后下载SDK,点击qq互联首页【文档资料】,或者直接点击这里http://wiki.connect.qq.com/sdk下载,中间位置,找到【SDK for 网站接入】中php SDK;点击下载--解压--上传至服务器,一气呵成

    应用审核通过之后你会在审核状态下看到【通过】字样,如果不通过,可以点击应用查看什么原因不通过;

    修改之后重新提交,如果还不通过那就继续修改,还不通过那就不用继续往下看了;

    自己信息资料都填写不正确,留留言就撤了吧...

    然后点击查看,就可以看到Appid和Appkey了1497702239583218.png1497702355545696.png

    部署服务器什么的就不再多说了,如果有不明白,你可以留言或者邮件联系超人来帮助你解决,接下来就来进行qq登录接入

    • 上传服务器,设置配置项,执行install/文件夹下的index.php设置配置项;

    • 填写appid、appkey、callback、请求授权列表;1497703266732867.png

    引入文件:将API文件夹拷贝到您要的目录中,在使用的文件中引入qqConnectAPI.php即可,这里我在框架入口文件引入;

    require_once "./Connect2.1/API/qqConnectAPI.php";

    注意:由于API需要用到session,请却好session可以使用,并且API会执行session_start(),请确保页面session_start()没有执行,并且qqConnectAPI.php需要引用在header输出之前,这里在thinkphp5中找到配置项文件中session配置,不开启框架session;

    html页面中自己搞一个qq登陆就好;

    <a href="{:url('login')}">qq登录</a>

    然后在login方法中键入以下代码,这里注意qq_login()方法中有一个header("location:$login_url'),如果不die掉的会会导致无法唤起qq登陆页面,所以这里die一下:

    /**
     * qq登录
     */
    public function login ()
    {
       $qc = new \QC();
       $qc->qq_login();
       exit;
    }

    注意:

    1.获得access_token,在callback页面中使用$qc->qq_callback()返回access_token,

    2.$qc->get_openid()返回openid,之后可以将access_tokenopenid保存(三个月有效期),

    3.之后调用接口时不需要重新授权,但需要将access_tokenOpenid传入QC的参数中,如下:

    4.$qc = new QC($access_token, $openid);

    具体代码如下,登陆之后会跳转到回到地址,具体代码如下:

    /**
    * 网站首页,回调地址
    * @return \think\response\View
    */
    public function index ()
    {
       if( isset($_GET['state']) && isset ($_GET['code']) )
       {
           $qc = new \QC();
           $access_token = $qc->qq_callback();//获取access_token
           $openid = $qc->get_openid();//获取openid
           $qc = new \QC($access_token,$openid);
           $userInfo = $qc->get_user_info();//获取用户信息
           halt($userInfo);//打印用户信息
        }
        return view();//加载模板
    }

    在登录成功之后,我们就可以打印出登陆者信息,如下:

    array(18) {
       ["ret"] => int(0)
       ["msg"] => string(0) ""
       ["is_lost"] => int(0)
       ["nickname"] => string(9) "███"
       ["gender"] => string(3) "男"
       ["province"] => string(6) "北京"
       ["city"] => string(6) "朝阳"
       ["year"] => string(4) "2000"
       ["figureurl"] => string(73) "http://qzapp.qlogo.cn/qzapp/101409756/C47BBBD7F2CE94C2B10ED3DCF3DDEC7A/30"
       ["figureurl_1"] => string(73) "http://qzapp.qlogo.cn/qzapp/101409756/C47BBBD7F2CE94C2B10ED3DCF3DDEC7A/50"
       ["figureurl_2"] => string(74) "http://qzapp.qlogo.cn/qzapp/101409756/C47BBBD7F2CE94C2B10ED3DCF3DDEC7A/100"
       ["figureurl_qq_1"] => string(69) "http://q.qlogo.cn/qqapp/101409756/C47BBBD7F2CE94C2B10ED3DCF3DDEC7A/40"
       ["figureurl_qq_2"] => string(70) "http://q.qlogo.cn/qqapp/101409756/C47BBBD7F2CE94C2B10ED3DCF3DDEC7A/100"
       ["is_yellow_vip"] => string(1) "0"
       ["vip"] => string(1) "0"
       ["yellow_vip_level"] => string(1) "0"
       ["level"] => string(1) "0"
       ["is_yellow_year_vip"] => string(1) "0"
    }

    标签php SQL


本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。

陶太富博客 http://blog.taotaifu.cn

最新发布

最新评论

0.133379s