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操作相关推荐

  1. 唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口

    一.唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口接口可获取到宝贝标题,宝贝价格,宝贝ID,宝贝图片,优惠价,宝贝链接,卖家昵称,店铺所在 ...

  2. 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口

    一.京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口代码对接如下: 1.请求参数: 名称 类型 必须 描述 key String 是 调用key ...

  3. 京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口

    一.京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GE ...

  4. 1688搜索新品API接口-(按关键字搜索新品数据API接口)

    一.1688搜索新品API接口-(按关键字搜索新品数据API接口)代码如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secre ...

  5. 1688搜索工厂数据API接口-(item_search_factory-按关键字搜索工厂数据API接口)

    一.1688搜索工厂数据API接口-(item_search_factory-按关键字搜索工厂数据API接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key ...

  6. 微店商品详情API接口(item_get-获得微店商品详情API接口),微店API接口

    一.微店商品详情API接口(item_get-获得微店商品详情API接口),微店API接口代码对接可以获取到宝贝ID,宝贝标题,价格,掌柜名称,库存,最小购买数,宝贝链接,宝贝图片,品牌名称,商品详情 ...

  7. tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口

    tmall.product.schema.get( 淘宝天猫商品发布API接口) ,淘宝商品发布API接口,淘宝店铺上传API接口,oAuth2.0店铺上传API接口,可适用于店铺上传商品,店铺发货, ...

  8. 桔子浏览器电脑版如何登录 桔子浏览器PC版账号登录教程

    桔子浏览器电脑版如何登陆?桔子浏览器支持账号登录功能,能够帮助用户收藏自动备份,不用担心丢失的情况,今天我们就来讲讲怎么登录账号. 桔子浏览器PC版账号登录教程 1.打开桔子浏览器点击[工具]-[登录 ...

  9. 【网络修复-微软账号】windows系统微软账号无法登录、edge浏览器微软账号登录不了

    一.问题背景 windows系统微软账号无法登录.edge浏览器微软账号登录不了. 因为出BUG的时候我没有截图,所以这里就不放出问题图片了,大家都懂. 就是在右边橙色圈圈点击登录时,转一会就出错. ...

最新文章

  1. 2021年去中心化金融平台22亿美元加密货币被盗
  2. Python库引用import多种用法及比较
  3. 服务器的图片无法显示,服务器的图片无法显示
  4. Redis的相关命令
  5. AD原理图编译WARNING:Net XXX has no driving source
  6. python elem_Python
  7. Windows Phone 更改datePicker的显示格式
  8. unigui作中间件使用
  9. netty channel的线程安全性与@Sharable
  10. 美国数据不佳美元仍跳升,只因欧元区问题更多
  11. 《我是一只IT小小鸟》读书笔记
  12. ai人工智能软件_在FuchsiaOS,AI助手和软件优化上
  13. 网线制作和交换机工作原理
  14. 教你添加百度分享按钮
  15. Scala-Day13
  16. RNN、self-attention、transform的浅显或许错误的理解
  17. 金色新版萝卜影视系统源码+影视系统APP源码
  18. android recocery模式,小米进入Recovery模式的两种方式
  19. 全体自然数的和是负十二分之一?
  20. 魔兽世界9.0主播最多的服务器,魔兽世界9.0新人服务器选什么好?

热门文章

  1. 【考试题解】 递归递推
  2. 《muduo网络库》学习笔记——时间轮Timeing wheel
  3. 不上架App Store怎么安装到非越狱苹果手机使用
  4. DirectShow 简介
  5. 磁力搜索网站+下载神器放送2019-03-05
  6. Tableau豆瓣电影项目实战作业 Day1
  7. 从B 树、B+ 树、B* 树
  8. python正六边形_荐用正六边形分割地图
  9. WGCNA如何从module中挖掘关键基因
  10. 网易im即时通讯 移动端嵌入web