PHP调用QQ互联接口实现QQ登录网站
调用QQ登录接口,首先要到QQ互联完善开发者认证信息,并通过审核,然后创建一个网站应用,获得APP ID和APP Key,通过审核后即可调用基本接口get_user_info(获得用户信息),实现QQ登录网站功能。
废话不多,上示例代码(QQ登录李维山博客):
<?phpheader("Content-Type: text/html;charset=utf-8");//应用APP ID$app_id = "101486017";//应用APP Key$app_secret = "13a1811780f29d7a5b64e598c38a4494";//应用填写的网站回调域$my_url = "http://www.msllws.top/qqlogin";//Step1:获取Authorization Codesession_start();$code = $_REQUEST["code"];//存放Authorization Codeif(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=".$app_id."&redirect_uri=".urlencode($my_url)."&state=".$_SESSION['state'];echo("<script> top.location.href='".$dialog_url."'</script>");}//Step2:通过Authorization Code获取Access Tokenif($_REQUEST['state'] == $_SESSION['state'] || 1) {//拼接URL$token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"."client_id=".$app_id."&redirect_uri=".urlencode($my_url)."&client_secret=".$app_secret."&code=".$code;$response = file_get_contents($token_url);//如果用户临时改变主意取消登录,返回true!==false,否则执行step3 if (strpos($response, "callback") !== false) {$lpos = strpos($response, "(");$rpos = strrpos($response, ")");$response = substr($response, $lpos + 1, $rpos - $lpos -1);$msg = json_decode($response);if (isset($msg->error)) {echo "<h3>error:</h3>".$msg->error;echo "<h3>msg :</h3>".$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 ,openidif (isset($user->error)) {echo "<h3>error:</h3>".$user->error;echo "<h3>msg :</h3>".$user->error_description;exit;}//Step4:使用openid和access_token获取用户信息$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);//获取到的用户信息//以下为授权成功后的自定义操作if($user_data){// ......echo("<script> top.location.href='http://www.msllws.top'</script>");}else{echo '未知错误';}}else{echo("The state does not match. You may be a victim of CSRF.");}
登录效果:
PHP调用QQ互联接口实现QQ登录网站相关推荐
- [bhpyg] QQ互联接口 ,第三方帐号登录
1.介绍 现在很多网站都集成了第三方帐号登录的功能,比如QQ登录.微信登录.微博登录. 使用第三方帐号登录目的,简化用户注册的流程,实现快速的注册登录. 第三方登录基本流程:①跳转到第三方认证页面 ② ...
- qq互联android sdk,qq互联.Android
导读:2.2调用示例,这里以发送文字微博接口的调用为例例,来说明通过requestAsync调用兼容接口的方法:,在上面的调用中,调用获取用户信息接口的示例代码如下:,调用发送带图微博接口的,http ...
- java qq音乐接口 api,QQ音乐解析API接口更新:支持HQ,ape,flac无损音质,缓存功能
{"Code":"OK","keyword":"\u6296\u97f3\u70ed\u6b4c","page ...
- 工行银企互联接入详解(5)--使用Java调用银企互联接口
点此下载源码及配套资源 本文目录 1. 准备工作 2. 创建项目 3. 查看接口文档 4. 编写程序 5. 查看结果 1. 准备工作 需要启动NC,然后启动NC里面的Https客户端服务和签名服务. ...
- JavaWeb项目调用QQ登录----QQ互联
首先要做的在QQ互联申请项目QQ互联官网首页 ,申请通过会得到APPID , APPKey 一 : 在HTML/JSP页面放置符合QQ互联标准的QQ登录图标 附代码: <a href=&quo ...
- php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)
接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面我们一一起来看下如何通过QQ互联来实现第三方登录. ####申 ...
- qq互联登录授权php配置,php如何整合qq互联登录
相关推荐:<PHP培训> php整合qq互联登录 接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面 ...
- QQ登录, 腾讯开放平台和QQ互联的坑
最近,项目中,QQ登录的APPid 和key 是 腾讯开放平台的,如果要转换成QQ互联,必须QQ互联关联腾讯开放平台,并审核通过,如果新建一个App的话,再给开发AppID和KEY就会报10044,非 ...
- QQ互联与财付通将打通登录态,移动支付更便捷
随着移动互联网时代的迅猛发展,人类工作和生活方式发生了重大变化,从通讯到生活服务查询,再到线上购物,这一些以往要通过PC完成的动作,现在都只要一个手机就能解决,而支付便成为这个闭环中不可或缺的一个功能 ...
最新文章
- ado.net图片点击刷新_华为官方解答为何微信保存的图片不在图库显示
- eclipse中在类saolei.Test 中找不到main方法
- java bigDecimal and double
- 程序员50题(JS版本)(二)
- 小学生计算机德育渗透总结,小学信息技术教学德育渗透的研究
- SpringBoot系列: Eclipse+Maven环境准备
- python网络编程-socketserver模块
- 【文献阅读】Stacked What-Where Auto-encoders -ICLR-2016
- 技术篇-符号制作-线符号制作
- latex在行末出现百分号的作用
- JAVA后端开发面试小结
- java短信验证码功能发送的验证码如何校验_java实现发送短信验证码
- 腾讯云域名的报价表收费标准和活动报价
- 用Python绘制当前日期
- 微信接口调用权限报: 48001, api unauthorized hint
- wps怎么把字缩到最小_wps文字怎么把空行缩小
- C语言入门(九)>>>循环 - while循环
- 安卓平台的功耗一般分析
- 8051单片机的串行通信
- 如何做一个智能问答系统及neo4j可视化