qq授权登录全过程(网站绑定QQ互联实现QQ登陆)
qq授权登录全过程(网站绑定QQ互联实现QQ登陆)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"); function toLogin() { <a href="#" onclick='toLogin()'><img src="https://img.aigexing.comQQ图标路径"></a> 然后在网页的头部放置如下代码(注:博主曾在网页底部放置,发现不行,所以只好放网页头部):<script>
今天就来说说我自己懂得的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="https://img.aigexing.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互联就完成了。
喜欢的小伙伴们可以关注我或者给我点赞哦。