QQ一键登录功能的实现过程
QQ登录的思路:
当qq登陆成功后,QQ会给我们返回一个唯一的用户标识:openId,当用户授权QQ时,判断
if(已经有openId){ 跳转到登陆后的页面。 }else if(没有openId){ 跳转到注册页面->然后绑定->跳转到登陆后的页面 }绑定:将用户id和唯一标识关联,所有一键登录原理皆如此
过程:
1、实现QQ登录需要在QQ互联先创建应用:http://connect.qq.com/
2、创建应用成功得到:APP ID 和 KEY
3、确保要用得的API已激活,如下:

4、下载相应的SDK
5、解压SDK后浏览文件夹设置配置项,其实就是设置API->comm->inc.php文件(->代表文件夹里面),可以不浏览,自己去设置,复制以下并修改appid、appkey和回调地址,这三项一定要跟申请的应用一致,否则是不行的!
{'appid':'2222094','appkey':'f8ac3d316ebd74d2039294fff81cce9b','callback':'http://xxx/api/qq/callback.php','scope':'get_user_info','errorReport':true,'storageType':'file','host':'localhost','user':'root','password':'root','database':'test'}6、简化文件,实际上有用的就这几个文件,保留API(类及设置文件夹)、example(API例子)和index.php授权页面,当然example只是做参考,实际上你不需要也是可以丢掉的,但是一般还是留着,以防要用的时候要重新下载SDK

最重要的就是:
a.授权页面:example->oauth->index.php
b.回调页面:example->oauth->callback.php
c.还有你要执行的API:example->get_info->get_info.php
我喜欢把要用的文件拿到前面,如:example里面的get_info.php,拿到新建的user文件夹里面,还有把回调页面,感觉干净了很多 (移动的时候注意路径)

7、使用API需要传入:$openid、$access_token
所以在callback.php设置了session,如下:
require_once('API/qqConnectAPI.php'); $qc = new QC(); $_SESSION['access_token']=$qc->qq_callback(); $_SESSION['openid']=$qc->get_openid(); header('Location:'.'user/get_user_info.php');get_info.php拿用户信息:
$qc = new QC(); $access_token=$_SESSION['access_token']; $openid=$_SESSION['openid']; $arr = $qc->get_user_info();print_r($arr) 即看到返回的信息


技巧:当页浏览拿数据,重组数组并提交到“借数据页面”,通常也是注册页面
$param=array('action'=>'接数据页面','orther_web_id'=>$_SESSION['openid'],'orther_web_name'=>urldecode($urlname),'orther_web'=>'QQ'); echo form($param);form()是一个很方便的函数,提交过来的数组,相当于把数组每个值都放到一个input,然后按提交按钮,他自己创建自己提交,纯自动!
凡是一个页面提交了数据那就能用$_GET或$_POST拿到啦!


8、最后一步就是在“接收数据页”把数据接收,拿QQ名称就:$_POST['orther_web_name']....剩下的就都不是问题了