第三方qq登录授权(网站绑定QQ互联实现QQ登陆)
今天就来说说我自己懂得的QQ互联的配置
首先必须要现在腾讯那里申请了QQ互联,并且获得了appid和appkey,这里就不详细说明申请过程。然后在QQ互联的开发文档那里下载SDK的资源包(这里我们下载php的sdk资源)。下载完之后就把解压的SDK包放在自己网站的跟目录下(文件名和路径自己取)。然后输入网址,访问那个文件夹的位置,出现如下的配置页面。
把我们申请到的appid和appkey填入其中,然后在我们刚刚放入的SDK的文件夹中新建两个文件,分别为qqlogin.php和callback.php,与API文件夹在同一级目录下。而上述的配置的callback选项就填callback.php的路径。按照自己的需要,勾选自己想要的功能,博主在这里这勾选了第一个,也就是获得用户的基本信息。然后点配置。需要注意的是,一般这个时候,他都会提示你需要777的操作权限,这个时候就需要在刚刚上传的SDK服务器下对API文件夹设置777权限,然后配置成功之后就把doc、example、install文件夹和index.php文件删除掉。
接下来我们下载一个QQ图标(QQ互联的开发文档里也有得下载),然后在我们网站需要放置的位置下放置图片和js代码,如下:
<a href="#" onclick='toLogin()'><img src="http://img.studyofnet.comQQ图标路径"></a>
然后在网页的头部放置如下代码(注:博主曾在网页底部放置,发现不行,所以只好放网页头部):
<script>
function toLogin() {
var A=window.open("此处填写之前创建的qqlogin.php的路径","TencentLogin", "width=450,height=320,menubar=0,scrollbars=1, resizable=1,status=1,titlebar=0,toolbar=0,location=1");
}
</script>
接着在qqlogin.php文件夹里面加入如下的内容:
require_once 'API/qqConnectAPI.php'; //访问QQ登录页面 $oauth = new Oauth(); $oauth->qq_login(); 然后在callback.php文件夹下加入如下代码: //请求accesstoken $oauth = new Oauth; $accesstoken = $oauth->qq_callback(); $opendid = $oauth->get_openid();//获取openid $qc = new QC($accesstoken,$opendid); $userinfo = $qc->get_user_info(); $_SESSION['userinfo'] = $userinfo;//博主把获取的信息放在了SESSION中
到这里的时候,正常情况下是登录之后就能获取到用户信息,但不会跳转到之前的页面,所以,我们在这里就做登录之后关闭QQ登录小窗口跳转页面,同时,由于如果是用手机登录时,是不会出现小窗口的,为了完善,我们在这里要判断下是否是手机登录。
//判断是否手机登录的函数 function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $useragent_commentsblock=preg_match('|\(.*?\)|',$useragent,$matches)>0?$matches[0]:''; function Checksubstrs($substrs,$text){ foreach($substrs as $substr) if(false!==strpos($text,$substr)){ return true; } return false; } $mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian', 'Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP', 'Smartphone','Go.Web','Palm','iPAQ'); $mobile_token_list=array('Profile/MIDP','Configuration/CLDC-', '160×160','176×220','240×240', '240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson' ,'Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_', 'SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod'); $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||CheckSubstrs($mobile_token_list,$useragent); if ($found_mobile){ return true; }else{ return false; } } if (isMobile()){ header('Location:http://跳转的地址'); exit; } $js = <<<eof <script type='text/javascript'> window.opener.location.href='http://要跳转到的地址'; </script> eof; //当前小的子页面关闭 echo "<script>window.close();</script>";
至此,QQ互联就完成了。
喜欢的小伙伴们可以关注我或者给我点赞哦。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com