分享QQ第三方登陆SDK
2014-11-07 11:37
246 查看
主要是考虑到QQ的PHP SDK写的真是太烂了,纯属是普及API知识,而不是到手就可以部署的类库。。反正自己都写了一个了,就拿出来分享下。。
什么也不多说,直接上代码。
Qq_sdk.php
使用方法:在你网站上放置超链接,地址为:https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=你的APP_ID&redirect_uri=你的回调地址
在回调地址上调用我上面这个qq_sdk即可。
demo如下:
什么也不多说,直接上代码。
Qq_sdk.php
<?php /** * QQ开发平台 SDK * 作者:偶尔陶醉 * blog: www.stutostu.com */ class Qq_sdk{ //配置APP参数 private $app_id = 你的APP ID; private $app_secret = '你的APP_secret'; private $redirect = 你的回调地址; function __construct() { } /** * [get_access_token 获取access_token] * @param [string] $code [登陆后返回的$_GET['code']] * @return [array] [expires_in 为有效时间 , access_token 为授权码 ; 失败返回 error , error_description ] */ function get_access_token($code) { //获取access_token $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(); //expires_in 为access_token 有效时间增量 parse_str($this->_curl_get_content($token_url), $token); return $token; } /** * [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_user_info 获取用户信息] * @param [string] $token [授权码] * @param [string] $open_id [用户唯一ID] * @return [array] [ret:返回码,为0时成功。msg为错误信息,正确返回时为空。...params] */ function get_user_info($token, $open_id) { //组装URL $user_info_url = 'https://graph.qq.com/user/get_use r_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, 3); $result = curl_exec($ch); curl_close($ch); return $result; } } /* end of Qq_sdk.php */
使用方法:在你网站上放置超链接,地址为:https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=你的APP_ID&redirect_uri=你的回调地址
在回调地址上调用我上面这个qq_sdk即可。
demo如下:
if(empty($_GET['code'])) { exit('参数非法'); } include('qq_sdk'); $qq_sdk = new Qq_sdk(); $token = $qq_sdk->get_access_token($_GET['code']); print_r($token); $open_id = $qq_sdk->get_open_id($token['access_token']); print_r($open_id); $user_info = $qq_sdk->get_user_info($token['access_token'], $open_id['openid']); print_r($user_info);
相关文章推荐
- 实现 QQ JS SDK 第三方登陆
- 运用XUtils获取网络资源结合QQ第三方登陆分享、微信精选
- php QQ第三方登陆SDK程序代码
- SharedSDK(三):sharedSdk集成分享及第三方登陆(下载文档Sdk)
- Android不经过第三方\官方SDK直接使用Intent快捷实现QQ微信分享
- 通过使用第三方SDK来实现应用的分享,第三方登陆,数据信息统计等功能(ShareSDK)。
- 安卓一键分享到qq,微信,微博,官方SDK非第三方
- umeng3社会化分享SDK技术评测-2第三方登陆
- [Android]不经过第三方SDK直接调用系统自带分享QQ、微信
- 安卓一键分享到qq,微信,微博,官方SDK非第三方
- 苹果审核被拒/sdk 4.2上不显示没有安装客户端的平台,友盟第三方登陆,强制安装QQ客户端,被拒绝
- 最新Android实现分享到QQ QZone 博客功能(集成官方SDK,不使用第三方)
- SharedSDk相关的集成。第三方登陆及分享
- QQ第三方登陆,上拉加载下拉刷新XListView结合微信精选第三方分享加ImageLoad
- 制作一个类似QQ第三方登陆的sdk平台(安卓版)
- QQ第三方登陆,上拉加载下拉刷新XListView结合微信精选第三方分享加ImageLoad
- 第三方SDK:ShareSDK 快捷分享 + 登陆
- 微信登陆SDK接入 微信 qq 新浪 登陆&&分享
- Android QQ/微信第三方登陆 分享,支付宝微信支付
- Android:QQ分享、微信分享、朋友圈分享(不使用第三方SDK)