爱编码的Farmer

  • 主页
  • 编程开发
  • 运营维护
  • 随心笔记
  • 留言页面
  • 打赏
爱编码的Farmer
我是Farmer,我为自己代言
  1. 首页
  2. 编程开发
  3. 正文

QQ接口 实现QQ快捷登陆

2016年6月14日 4846点热度 1人点赞 0条评论
首先需要去申请一个QQ互联的接口,设置好各种参数
得到两个参数:APP ID 和 APP KEY
在页面可以这样弄:
直接超链接转向接口地址:
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=APP_ID&redirect_uri=成功授权后的回调地址&state=状态码&scope=get_user_info(请参考官网)
(状态码也可以是固定不变的)
然后就会出现这个网站,也就是快捷登陆的网站啦..登陆成功后会跳转到你成功授权后的回调地址  他会在你的后面加上一个Authorization Code和原始的state值
clipboard
state可以用来验证,code是则用来获取QQ信息的一个值
php 代码如下:

[php]
function login($code){
$APP_ID="XX";
$APP_KEY="XX";
$redirect_uri="成功授权后的回调地址(同上)"
$url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=$APP_ID&client_secret=$APP_KEY";
$url .= "&code=$code&redirect_uri=$redirect_uri";//给URL赋值
$html = file_get_contents ( $url );//GET 访问,然后会返回一个我们下一步GET访问所需要的值,access_token,我们要用它来获取用户的OpenID
$url = "https://graph.qq.com/oauth2.0/me?access_token=" . getSubstr ( $html, 'access_token=', '&' );
$html = file_get_contents ( $url );//GET访问 获取OpenID
$userJson = json_decode ( getSubstr ( $html, 'callback( ', ')' ) );
$userJson->openid;
//这之后就是用openid在数据库里面搜索有没有相对应的账号,openid是用户的唯一标识,QQ它不会返回用户的QQ账号,而且不同的应用会有不同的openid,开始的时候我想错了,一直想着没QQ账号怎么来验证这个登陆的人是谁
return;
}
function getSubstr($str, $leftStr, $rightStr) { // 取出中间文本
$left = strpos ( $str, $leftStr );
// echo '左边:'.$left;
$right = strpos ( $str, $rightStr, $left );
// echo '
右边:'.$right;
if ($left < 0 or $right < $left)
return '';
return substr ( $str, $left + strlen ( $leftStr ), $right - $left - strlen ( $leftStr ) );
}
[/php]

标签: 暂无
最后更新:2016年6月18日

Farmer

不敢说什么

点赞
< 上一篇
下一篇 >

文章评论

取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

COPYRIGHT © 2021 icodef.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备19008073号