网站实现qq登录 小白篇

前期准备:

使用人家腾讯的功能,总得和人家打招呼吧!

QQ互联首页:http://connect.qq.com/

进入网址后,按如下操作来:

一.进入官网

二.申请创建【网站】应用

在这里插入图片描述

三.按要求填写资料

注意网站地址:填写你要设置快速登录的网址,eg:http://www.test.com;

回调地址:填写你发送QQ快速登陆后,腾讯得给你信息,这个信息往此页面接受。eg:http://www.test.com/accept_info.php

【详细的申请填写,请见官方提示,这里不做赘述】

四.申请成功后,完善信息
五.代码部分:

在你对应的PHP文件内写入,如下
方法一,面向过程法(我就记录了一种方法)如果有兴趣可以去看官网或者 来这看看
使用方法:配置 a p p i d , app_id, appidapp_secret, m y u r l 后 , 其 他 原 封 复 制 即 可 , my_url后,其他原封复制即可, myurluser_data为返回的登录信息
代码:


//应用的APPID

$app_id = “你的APPID”;
//应用的APPKEY
$app_secret = “你的APPKEY”;
//【成功授权】后的回调地址,即此地址在腾讯的信息中有储存
$my_url = “你的回调网址”;

//Step1:获取Authorization Code
session_start();
$code = R E Q U E S T [ " c o d e " ] ; / / 存 放 A u t h o r i z a t i o n C o d e i f ( e m p t y ( _REQUEST["code"];//存放Authorization Code if(empty( REQUEST["code"];//AuthorizationCodeif(empty(code))
{
//state参数用于防止CSRF攻击,成功授权后回调时会原样带回
$_SESSION[‘state’] = md5(uniqid(rand(), TRUE));
//拼接URL
$dialog_url = “https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=”
. KaTeX parse error: Expected 'EOF', got '&' at position 11: app_id . "&̲redirect_uri=" …my_url) . “&state=”
. $_SESSION[‘state’];
echo("”);
}

//Step2:通过Authorization Code获取Access Token
if($_REQUEST[‘state’] == $_SESSION[‘state’] || 1)
{
//拼接URL
$token_url = “https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&”
. “client_id=” . KaTeX parse error: Expected 'EOF', got '&' at position 11: app_id . "&̲redirect_uri=" …my_url)
. “&client_secret=” . $app_secret . “&code=” . $code;
r e s p o n s e = f i l e g e t c o n t e n t s ( response = file_get_contents( response=filegetcontents(token_url);
if (strpos($response, “callback”) !== false)//如果登录用户临时改变主意取消了,返回true!==false,否则执行step3
{
l p o s = s t r p o s ( lpos = strpos( lpos=strpos(response, “(”);
r p o s = s t r r p o s ( rpos = strrpos( rpos=strrpos(response, “)”);
r e s p o n s e = s u b s t r ( response = substr( response=substr(response, $lpos + 1, $rpos - $lpos -1);
m s g = j s o n d e c o d e ( msg = json_decode( msg=jsondecode(response);
if (isset($msg->error))
{
echo “

error:

” . $msg->error;
echo “

msg :

” . $msg->error_description;
exit;
}
}

//Step3:使用Access Token来获取用户的OpenID
$params = array();
parse_str($response, $params);//把传回来的数据参数变量化
$graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token'];
$str = file_get_contents($graph_url);
if (strpos($str, "callback") !== false)
{
 $lpos = strpos($str, "(");
 $rpos = strrpos($str, ")");
 $str = substr($str, $lpos + 1, $rpos - $lpos -1);
}
$user = json_decode($str);//存放返回的数据 client_id ,openid
if (isset($user->error))
{
 echo "<h3>error:</h3>" . $user->error;
 echo "<h3>msg :</h3>" . $user->error_description;
 exit;
}
//echo("Hello " . $user->openid);
//echo("Hello " . $params['access_token']);

//Step4:使用<span >openid,</span><span >access_token来获取所接受的用户信息。</span>
$user_data_url = "https://graph.qq.com/user/get_user_info?access_token={$params['access_token']}&oauth_consumer_key={$app_id}&openid={$user->openid}&format=json";
  
$user_data = file_get_contents($user_data_url);//此为获取到的user信息
}
else
{
 echo("The state does not match. You may be a victim of CSRF.");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值