参考文档链接:
http://wiki.open.qq.com/wiki/website/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_OAuth2.0
文件名为:teng.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <meta property="qc:admins" content="142144174167310116270006367" /> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta property="qc:admins" content="142144174167310116270006367" /> </head> <body> <a href="https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101218540&redirect_uri=http://zhangsixia.bwphp.cn/tengxun.php&state=test"><img src="qq.png"/></a> </body> </html>
php文件名:
<?php
header('Content-Type:text/html;charset=utf-8');
//getToken
$url = 'https://graph.qq.com/oauth2.0/token?client_id=101218540'
.'&client_secret=034ab318017483c1c2c90cee1fa2dee9'
.'&redirect_uri=http://zhangsixia.bwphp.cn/tengxun.php'
.'&grant_type=authorization_code'
.'&code='.$_REQUEST['code'];
$info = file_get_contents($url);
$params = array();
//parse_str() 函数把查询字符串解析到变量中
parse_str($info, $params);
//print_r($params);die;
//获取openid
$url1 = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token']."";
$info1 = file_get_contents($url1);
//print_r($info1);die;
$str = substr($info1,9,-3);
//print_r($str);die;
$arr = json_decode($str,true);
//print_r($arr['openid']);die;
//获取用户信息
$url2 = "https://graph.qq.com/user/get_user_info?access_token=".$params['access_token']."&oauth_consumer_key=101218540&openid=".$arr['openid']."";
$info2 = file_get_contents($url2);
$data = json_decode($info2,true);
//print_r($data);
//判断数据库是否存在
@$aa = mysql_connect('','','');
$db = mysql_select_db('');
@$selSql = "select userid, token, openid, type from user_oauth where token= '".$params['access_token'] ."' and type = 'qq'";
$selRe = mysql_query($selSql);
$num = mysql_num_rows($selRe); //mysql_num_rows() 函数返回结果集中行的数目
if($num>0)
{
echo "欢迎再次登陆!";exit;
}
$addSql = "insert into user_oauth (token,openid,type) values ('".$params['access_token']."','".$arr['openid']."','qq')";
//echo $addSql;die;
$addRe= mysql_query($addSql);
if($addRe)
{
echo "登陆成功!";
print_r($data);
exit;
}
echo "登陆失败!";exit;
?>
本文转自噼里啪啦啦 51CTO博客,原文链接:http://blog.51cto.com/pilipala/1651632,如需转载请自行联系原作者