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

在我大天朝,企鹅这东西是人人都有的,对于我们来说方便之极(信息太多),对于登录功能来说,使用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"
}

你可能还需要:http://www.wubin.pro/c/12.html

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

武斌博客 http://www.wubin.pro

Top