php使用qq登录api接口,QQ的账号登录及PHP api操作
QQ的账号登录及api操作,使用oauth 2.0官方提供的sdk都太过庞大,这是我自己简化的,提供简单的账号登录、获取个人信息、发布分享等功能,如果需要其他功能可以根据官方的api文档自行添加[文件] qq.php
001 appid=$appid;
011 $this->appkey=$appkey;
012 $this->access_token=$access_token;
013 }
014
015 function login_url($callback_url, $scope=''){
016 $params=array(
017 'client_id'=>$this->appid,
018 'redirect_uri'=>$callback_url,
019 'response_type'=>'code',
020 'scope'=>$scope
021 );
022 return 'https://graph.qq.com/oauth2.0/authorize?'.http_build_query($params);
023 }
024
025 function access_token($callback_url, $code){
026 $params=array(
027 'grant_type'=>'authorization_code',
028 'client_id'=>$this->appid,
029 'client_secret'=>$this->appkey,
030 'code'=>$code,
031 'state'=>'',
032 'redirect_uri'=>$callback_url
033 );
034 $url='https://graph.qq.com/oauth2.0/token?'.http_build_query($params);
035 $result_str=$this->http($url);
036 $json_r=array();
037 if($result_str!='')parse_str($result_str, $json_r);
038 return $json_r;
039 }
040
041 /**
042 function access_token_refresh($refresh_token){
043 }
044 **/
045
046 function get_openid(){
047 $params=array(
048 'access_token'=>$this->access_token
049 );
050 $url='https://graph.qq.com/oauth2.0/me?'.http_build_query($params);
051 $result_str=$this->http($url);
052 $json_r=array();
053 if($result_str!=''){
054 preg_match('/callback\(\s+(.*?)\s+\)/i', $result_str, $result_a);
055 $json_r=json_decode($result_a[1], true);
056 }
057 return $json_r;
058 }
059
060 function get_user_info($openid){
061 $params=array(
062 'openid'=>$openid
063 );
064 $url='https://graph.qq.com/user/get_user_info';
065 return $this->api($url, $params);
066 }
067
068 function add_share($openid, $title, $url, $site, $fromurl, $images='', $summary=''){
069 $params=array(
070 'openid'=>$openid,
071 'title'=>$title,
072 'url'=>$url,
073 'site'=>$site,
074 'fromurl'=>$fromurl,
075 'images'=>$images,
076 'summary'=>$summary
077 );
078 $url='https://graph.qq.com/share/add_share';
079 return $this->api($url, $params, 'POST');
080 }
081
082 function api($url, $params, $method='GET'){
083 $params['access_token']=$this->access_token;
084 $params['oauth_consumer_key']=$this->appid;
085 $params['format']='json';
086 if($method=='GET'){
087 $result_str=$this->http($url.'?'.http_build_query($params));
088 }else{
089 $result_str=$this->http($url, http_build_query($params), 'POST');
090 }
091 $result=array();
092 if($result_str!='')$result=json_decode($result_str, true);
093 return $result;
094 }
095
096 function http($url, $postfields='', $method='GET', $headers=array()){
097 $ci=curl_init();
098 curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE);
099 curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
100 curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
101 curl_setopt($ci, CURLOPT_TIMEOUT, 30);
102 if($method=='POST'){
103 curl_setopt($ci, CURLOPT_POST, TRUE);
104 if($postfields!='')curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
105 }
106 $headers[]="User-Agent: qqPHP(piscdong.com)";
107 curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
108 curl_setopt($ci, CURLOPT_URL, $url);
109 $response=curl_exec($ci);
110 curl_close($ci);
111 return $response;
112 }
113 }
[文件] config.php
1
[文件] index.php
01 get_openid();
12 $openid=$qq_oid['openid']; //获取登录用户open id
13
14 //获取登录用户信息15 $result=$qq->get_user_info($openid);
16 var_dump($result);
17
18 /**
19 //发布分享20 $title='开源中国'; //分享页面标题21 $url='http://www.oschina.net/'; //分享页面网址22 $site=''; //QQ应用名称23 $fromurl=''; //QQ应用网址24 $result=$qq->add_share($openid, $title, $url, $site, $fromurl);
25 var_dump($result);
26 **/
27
28 }else{
29 //生成登录链接30 $qq=new qqPHP($qq_k, $qq_s);
31 $login_url=$qq->login_url($callback_url, $scope);
32 echo '';
33 }
34 ?>
[文件] callback.php
01 access_token($callback_url, $_GET['code']);
10 }
11 if(isset($result['access_token']) && $result['access_token']!=''){
12 echo '授权完成,请记录access token:';
13
14 //保存登录信息,此示例中使用session保存15 $_SESSION['qq_t']=$result['access_token']; //access token
16 }else{
17 echo '授权失败';
18 }
19 echo '';
20 ?>
php使用qq登录api接口,QQ的账号登录及PHP api操作相关推荐
- 唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口
一.唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口接口可获取到宝贝标题,宝贝价格,宝贝ID,宝贝图片,优惠价,宝贝链接,卖家昵称,店铺所在 ...
- 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口
一.京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口代码对接如下: 1.请求参数: 名称 类型 必须 描述 key String 是 调用key ...
- 京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口
一.京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GE ...
- 1688搜索新品API接口-(按关键字搜索新品数据API接口)
一.1688搜索新品API接口-(按关键字搜索新品数据API接口)代码如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secre ...
- 1688搜索工厂数据API接口-(item_search_factory-按关键字搜索工厂数据API接口)
一.1688搜索工厂数据API接口-(item_search_factory-按关键字搜索工厂数据API接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key ...
- 微店商品详情API接口(item_get-获得微店商品详情API接口),微店API接口
一.微店商品详情API接口(item_get-获得微店商品详情API接口),微店API接口代码对接可以获取到宝贝ID,宝贝标题,价格,掌柜名称,库存,最小购买数,宝贝链接,宝贝图片,品牌名称,商品详情 ...
- tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口
tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口,可适用于店铺上传商品,店铺发货, ...
- 桔子浏览器电脑版如何登录 桔子浏览器PC版账号登录教程
桔子浏览器电脑版如何登陆?桔子浏览器支持账号登录功能,能够帮助用户收藏自动备份,不用担心丢失的情况,今天我们就来讲讲怎么登录账号. 桔子浏览器PC版账号登录教程 1.打开桔子浏览器点击[工具]-[登录 ...
- 【网络修复-微软账号】windows系统微软账号无法登录、edge浏览器微软账号登录不了
一.问题背景 windows系统微软账号无法登录.edge浏览器微软账号登录不了. 因为出BUG的时候我没有截图,所以这里就不放出问题图片了,大家都懂. 就是在右边橙色圈圈点击登录时,转一会就出错. ...
最新文章
- 2021年去中心化金融平台22亿美元加密货币被盗
- Python库引用import多种用法及比较
- 服务器的图片无法显示,服务器的图片无法显示
- Redis的相关命令
- AD原理图编译WARNING:Net XXX has no driving source
- python elem_Python
- Windows Phone 更改datePicker的显示格式
- unigui作中间件使用
- netty channel的线程安全性与@Sharable
- 美国数据不佳美元仍跳升,只因欧元区问题更多
- 《我是一只IT小小鸟》读书笔记
- ai人工智能软件_在FuchsiaOS,AI助手和软件优化上
- 网线制作和交换机工作原理
- 教你添加百度分享按钮
- Scala-Day13
- RNN、self-attention、transform的浅显或许错误的理解
- 金色新版萝卜影视系统源码+影视系统APP源码
- android recocery模式,小米进入Recovery模式的两种方式
- 全体自然数的和是负十二分之一?
- 魔兽世界9.0主播最多的服务器,魔兽世界9.0新人服务器选什么好?