php QQ第三方登录/OAuth2.0验证
来源:互联网 发布:linux arp 安装包 编辑:程序博客网 时间:2024/05/21 11:06
qq实现第三方网站登录
创建QQ互联账号
可用QQ号码登录 登录地址:http://connect.qq.com/
QQ互联->管理中心->创建应用
1.创建应用
2.创建网站
注意内容:网站地址一定要加入图中所标注的信息
创建成功
获取 APP ID 和 APP KEY
header请求
- public function actionQQ()
- {
- //$redirect 为回调地址 $app_id 应用编号
- $url = 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=' . $app_id . '&redirect_uri=' . $redirect;
- header('Location:' . $url);
- }
获取QQ用户信息
- <?php
- class QQ_sdk
- {
- private $app_id = '101****0572';
- private $app_secret = 'e55264******132366';
- private $redirect = 'http://www.***.cn/';
- function __construct()
- {
- }
- /**
- * [get_open_id 获取用户唯一ID,openid]
- * @param [string] $token [授权码]
- * @return [array] [成功返回client_id 和 openid ;失败返回error 和 error_msg]
- */
- function get_open_id($token)
- {
- $str = $this->curl_get_content('https://graph.qq.com/oauth2.0/me?access_token=' . $token);
- if (strpos($str, "callback") !== false) {
- $lpos = strpos($str, "(");
- $rpos = strrpos($str, ")");
- $str = substr($str, $lpos + 1, $rpos - $lpos - 1);
- }
- $user = json_decode($str, TRUE);
- return $user;
- }
- /**
- * [get_access_token 获取access_token]
- * @param [string] $code [登陆后返回的$_GET['code']]
- * @return [array] [expires_in 为有效时间 , access_token 为授权码 ; 失败返回 error , error_description ]
- */
- function get_access_token($code)
- {
- $token_url = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&'
- . 'client_id=' . $this->app_id . '&redirect_uri=' . urlencode($this->redirect) . '&client_secret=' . $this->app_secret . '&code=' . $code;
- $token = array();
- parse_str($this->curl_get_content($token_url), $token);
- return $token;
- }
- /**
- * [get_user_info 获取用户信息]
- * @param [string] $token [授权码]
- * @param [string] $open_id [用户唯一ID]
- * @return [array] [ret:返回码,为0时成功。msg为错误信息,正确返回时为空。...params]
- */
- function get_user_info($token, $open_id)
- {
- $user_info_url = 'https://graph.qq.com/user/get_user_info?' . 'access_token=' . $token . '&oauth_consumer_key=' . $this->app_id . '&openid=' . $open_id . '&format=json';
- $info = json_decode($this->curl_get_content($user_info_url), TRUE);
- return $info;
- }
- private function curl_get_content($url)
- {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- curl_setopt($ch, CURLOPT_URL, $url);
- //设置超时时间为3s
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
- $result = curl_exec($ch);
- curl_close($ch);
- return $result;
- }
- }
可在设置<meta property="qc:admins" content="756420************1316367" />目录下测试
- if(isset($_GET['code'])) {
- //qq获取信息
- include('QQ_sdk.php');
- $qq_sdk = new Qq_sdk();
- $token = $qq_sdk->get_access_token($_GET['code']);
- echo "<pre>";
- print_r($token)."</br>";
- echo "</pre>";
- $open_id = $qq_sdk->get_open_id($token['access_token']);
- echo "<pre>";
- print_r($open_id)."</br>";
- echo "</pre>";
- }
- ?>
获取用户信息
阅读全文
0 0
- php QQ第三方登录/OAuth2.0验证
- php QQ第三方登录/OAuth2.0验证
- php QQ第三方登录/OAuth2.0验证
- php 新浪微博第三方登录验证/OAuth2.0
- php 新浪微博第三方登录验证/OAuth2.0
- php第三方登录 Oauth2.0协议
- php第三方登录 Oauth2.0协议
- PHP第三方登录OAuth2.0协议
- 第三方登录之QQ登录——OAuth2.0处理流程介绍(以QQ登录为例)
- OAuth2.0协议 第三方登录 授权
- 第三方登录—OAuth2.0协议
- OAuth2.0协议 第三方登录 授权
- 第三方登录—OAuth2.0协议
- 初探OAuth2.0第三方认证登录
- PHP第三方登录—QQ登录
- 基于OAuth2.0协议的QQ第三方授权登录iOS代码分析
- Android中的OAuth2.0——QQ第三方授权登录
- 腾讯QQ第三方登录1:申请接入(OAuth2.0协议)
- cs224
- 来看看视频种子骗局
- Quantrader学习笔记
- oracle 12c安装过程中报错:[INS-32102]指定的Oracle主目录已存在
- PAE物理地址扩展怎么开启?XP系统PAE的开启方法
- php QQ第三方登录/OAuth2.0验证
- 51Nod-1540-俄罗斯赌轮盘
- elsatic的安装
- 获取一个整数的每一位,并正序输出(递归)
- mysql远程登录授权
- 云付注册推荐人怎么填?云付新手怎么操作
- AJAX请求数据步骤是什么?传输的数据是用的暗文还是明文?
- Java并发之BlockingQueue
- js正则表达式校验正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$