网站绑定QQ互联

  今天就来说说我自己懂得的QQ互联的配置(这里以php为例)。
  首先必须要现在腾讯那里申请了QQ互联,并且获得了appid和appkey,这里就不详细说明申请过程。然后在QQ互联的开发文档那里下载SDK的资源包(这里我们下载php的sdk资源)。下载完之后就把解压的SDK包放在自己网站的跟目录下(文件名和路径自己取)。然后输入网址,访问那个文件夹的位置,出现如下的配置页面。

peizhi.JPG

  把我们申请到的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="QQ图标路径"></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互联就完成了。

QQ.JPG

3 Comments

  1. 头像
    咖啡屋、少年 回复
    2017-10-24 19:33:22

    点个赞

  2. 头像
    没有昵称 回复
    2017-05-04 22:15:23

    肇锐

头像
QQ登录: