公司用的是thinkphp 3.1,在项目的lib目录建立目录ORG,注意大写,
qq互联登陆sdk下载地址为http://wiki.connect.qq.com/sdk下载,自行下载,
下载解压之后把Connect2.1文件夹剪切到刚建立的ORG目录下,并改名Connect,
然后在浏览器中进行安装,目录直接写到刚建立的ORG/Connect,就会出现欢迎页面了,直接点击(设置配置项),然后填写id key之类的(注意,callback请填写完全域名,带http://,因为qq互联升级之后要写完全,不然登陆跳转会出现100010错误),然后其他的随意,我是直接全选的,点击 (配置)成功之后,到刚那个Connect目录把除了API目录其他的全部删除,之后把API目录中的文件全部剪切到上一级(Connect)目录中来,把qqConnectAPI.php改为qqConnectAPI.class.php,到此文件部分就可以了,然后在你的项目控制器里写代码了
Public function _initialize(){
import('@.ORG.Connect.qqConnectAPI'); //通过import载入刚刚的class文件(因为是在同一个项目下直接@,import具体用法请百度)
$this->QC = new QC();
}
public function qq_login(){//qq登陆的a标签就可以直接指向这里了
$this->QC->qq_login();
}
public function qq_callback(){//qq的回调函数,在qq互联的官方网站以及配置的时候填写的就是这个回调地址
$token = $this->QC->qq_callback();
$openid = $this->QC->get_openid();
$QC = new QC($token,$openid);
$arr = $QC->get_user_info();
$db=M("Member"); //接下来就是自己项目的登陆函数了
$where['qq_openid']=$openid; //判断此QQ是否注册 唯一标识符openid 在表里加了个qq_openid为唯一
$isqq=$db->where($where)->find();
if($isqq){
//写入登陆状态
session('user_id', $isqq['id']);
session('user_name', $isqq['username']);
session('user_nickname', $isqq['account']);
session('user_email', $isqq['email']);
session('user_last_time', $isqq['last_time']);
$save_data['id']=$isqq['id'];
$save_data['last_time']=time();
$db->save($save_data);
$this->success('登陆成功!',U('Member/index'));
}else{
$data['qq_openid']=$openid; //QQ登陆唯openid
$data['username']=$arr['nickname']; //用户名
$data['nickname']=$arr['nickname']; //网名
$data['face_url']=$arr['figureurl_2']; //头像
$data['status']='1'; //用户状态为启用
//如果用户名存在
$name['username']=$arr['nickname'];
$isname=$db->where($name)->find();
if($isname){
//用户名存在添加随机数
$data['username']=$arr['nickname']."_".rand(1000,9999);
}
//判断是否写入成功
if($id=$db->add($data)){
//写入登陆状态
session('user_id', $id);
session('user_name', $data['account']);
session('user_nickname', $data['account']);
session('user_email', '未填写');
session('user_last_time', time());
$save_data['id']=$id;
$save_data['last_time']=time();
$db->save($save_data);
$this->success('注册成功!',U('Member/index'));
}else{
$this->error('注册失败!',U('Member/login'));
}
}
}
整个thinkphp的qq互联登陆就可以了