仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 705|回复: 8
打印 上一主题 下一主题

[学习教程] PHP教程之QQ的账号登录及PHP api操纵

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。
QQ的账号登录及api操纵,利用oauth2.0
官方供应的sdk都太甚复杂,这是我本人简化的,供应复杂的账号登录、猎取团体信息、公布分享等功效,假如必要其他功效能够依据官方的api文档自行增加[文件]qq.php

001<?php002/**003*PHPLibraryforqq.com004*005*@authorphp100(http://www.php100.com/)006*/007classqqPHP008{009function__construct($appid,$appkey,$access_token=NULL){010$this->appid=$appid;011$this->appkey=$appkey;012$this->access_token=$access_token;013}014015functionlogin_url($callback_url,$scope=){016$params=array(017client_id=>$this->appid,018redirect_uri=>$callback_url,019response_type=>code,020scope=>$scope021);022returnhttps://graph.qq.com/oauth2.0/authorize?.http_build_query($params);023}024025functionaccess_token($callback_url,$code){026$params=array(027grant_type=>authorization_code,028client_id=>$this->appid,029client_secret=>$this->appkey,030code=>$code,031state=>,032redirect_uri=>$callback_url033);034$url=https://graph.qq.com/oauth2.0/token?.http_build_query($params);035$result_str=$this->http($url);036$json_r=array();037if($result_str!=)parse_str($result_str,$json_r);038return$json_r;039}040041/**042functionaccess_token_refresh($refresh_token){043}044**/045046functionget_openid(){047$params=array(048access_token=>$this->access_token049);050$url=https://graph.qq.com/oauth2.0/me?.http_build_query($params);051$result_str=$this->http($url);052$json_r=array();053if($result_str!=){054preg_match(/callback(s+(.*?)s+)/i,$result_str,$result_a);055$json_r=json_decode($result_a[1],true);056}057return$json_r;058}059060functionget_user_info($openid){061$params=array(062openid=>$openid063);064$url=https://graph.qq.com/user/get_user_info;065return$this->api($url,$params);066}067068functionadd_share($openid,$title,$url,$site,$fromurl,$images=,$summary=){069$params=array(070openid=>$openid,071title=>$title,072url=>$url,073site=>$site,074fromurl=>$fromurl,075images=>$images,076summary=>$summary077);078$url=https://graph.qq.com/share/add_share;079return$this->api($url,$params,POST);080}081082functionapi($url,$params,$method=GET){083$params[access_token]=$this->access_token;084$params[oauth_consumer_key]=$this->appid;085$params[format]=json;086if($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();092if($result_str!=)$result=json_decode($result_str,true);093return$result;094}095096functionhttp($url,$postfields=,$method=GET,$headers=array()){097$ci=curl_init();098curl_setopt($ci,CURLOPT_SSL_VERIFYPEER,FALSE);099curl_setopt($ci,CURLOPT_RETURNTRANSFER,1);100curl_setopt($ci,CURLOPT_CONNECTTIMEOUT,30);101curl_setopt($ci,CURLOPT_TIMEOUT,30);102if($method==POST){103curl_setopt($ci,CURLOPT_POST,TRUE);104if($postfields!=)curl_setopt($ci,CURLOPT_POSTFIELDS,$postfields);105}106$headers[]="User-Agent:qqPHP(piscdong.com)";107curl_setopt($ci,CURLOPT_HTTPHEADER,$headers);108curl_setopt($ci,CURLOPT_URL,$url);109$response=curl_exec($ci);110curl_close($ci);111return$response;112}113}[文件]config.php

1<?php2//设置文件3header(Content-Type:text/html;charset=UTF-8);45$qq_k=;//QQ使用APPID6$qq_s=;//QQ使用APPKEY7$callback_url=http://yoururl/callback.php;//受权回调网址8$scope=get_user_info,add_share;//权限列表,详细权限请检察官方的api文档9?>[文件]index.php

01<?php02session_start();03require_once(config.php);04require_once(qq.php);0506$qq_t=isset($_SESSION[qq_t])?$_SESSION[qq_t]:;0708//反省是不是已登录09if($qq_t!=){10$qq=newqqPHP($qq_k,$qq_s,$qq_t);11$qq_oid=$qq->get_openid();12$openid=$qq_oid[openid];//猎取登任命户openid1314//猎取登任命户信息15$result=$qq->get_user_info($openid);16var_dump($result);1718/**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);25var_dump($result);26**/2728}else{29//天生登录链接30$qq=newqqPHP($qq_k,$qq_s);31$login_url=$qq->login_url($callback_url,$scope);32echo<ahref=",$login_url,">点击进进受权页面</a>;33}34?>[文件]callback.php

01<?php02//受权回调页面,即设置文件中的$callback_url03session_start();04require_once(config.php);05require_once(qq.php);0607if(isset($_GET[code])&&trim($_GET[code])!=){08$qq=newqqPHP($qq_k,$qq_s);09$result=$qq->access_token($callback_url,$_GET[code]);10}11if(isset($result[access_token])&&$result[access_token]!=){12echo受权完成,请纪录<br/>accesstoken:<inputsize="50"value=",$result[access_token],">;1314//保留登录信息,此示例中利用session保留15$_SESSION[qq_t]=$result[access_token];//accesstoken16}else{17echo受权失利;18}19echo<br/><ahref="./">前往</a>;20?>可以在书上很方便地做标记,及时记下自己的心得体会。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-19 06:22:12 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
小魔女 该用户已被删除
板凳
发表于 2015-1-27 20:54:05 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
简单生活 该用户已被删除
地板
发表于 2015-2-5 14:08:29 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
只想知道 该用户已被删除
5#
发表于 2015-2-12 03:28:19 | 只看该作者
实践是检验自己会不会的真理。
深爱那片海 该用户已被删除
6#
发表于 2015-3-2 22:25:25 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
再见西城 该用户已被删除
7#
发表于 2015-3-11 07:09:17 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
海妖 该用户已被删除
8#
发表于 2015-3-17 23:08:04 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
分手快乐 该用户已被删除
9#
发表于 2015-3-25 06:10:52 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 22:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表