当前位置:  编程技术>php
本页文章导读:
    ▪php使用新浪微博API开发用户授权功能      本节内容: 新浪微博API的php实例。 新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用.........
    ▪php获取新浪微博数据API的实例代码      本节内容: php获取新浪微博数据API 要取得新浪微博的数据,可以通过其提供的API,地址:http://open.weibo.com/wiki/API文档_V2。 获取数据的方法:   代码示例: <?php /** * 通过新浪微博数据API.........
    ▪php防止SQL注入攻击与XSS攻击的方法      本节内容: SQL注入攻击与XSS攻击的防范方法 在php编程中,所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss。 注意,中文要写出htmlentitiess($name,ENT_NOQ.........

[1]php使用新浪微博API开发用户授权功能
    来源: 互联网  发布时间: 2013-12-24

本节内容:
新浪微博API的php实例。

新浪微博API开发的资源比较多,新浪微博提供了一个开发者的平台,网址是:http://open.weibo.com,它里面有很全面的新浪微博开发的资料,包括开发者的使用和介绍,各种语言的API函数介绍文档,SDK等多种资料。

首先,在新浪微博开放平台下载基于PHP的SDK开发包,下载地址:http://code.google.com/p/libweibo/downloads/detail?name=weibo-oauth-class-with-image-avatar-06-29.zip

将下载包放到开发环境中并解压,在其中也包含了demo演示程序,可以参考其样例程序进行编写。

新浪微博API开发最重要的用户授权过程

开发的第三方应用,使用的是OAuth授权,关于OAuth授权的流程在新浪微博开放平台里有很清晰完整的介绍,可以到http://open.weibo.com/wiki/Oauth去查看。

1.首先,获取未授权的Request Token
 

代码示例:
$o = new WeiboOAuth( WB_AKEY , WB_SKEY );
$keys = $o->getRequestToken();
//echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']);

需要在新浪微博开放平台中注册一个帐号,或直接使用新浪微博帐号登录,进入应用,然后按照提示创建属于自己的第三方应用,创建完成之后可以得到两个授权的App Key和App Secret值,这两个值就是开发应用的关键。
得到授权值后,就可以利用上面的代码获得未授权的Request Token值了,它们会保存在$key数组变量中。

2.请求用户授权Token
 

代码示例:
$_SESSION['keys'] = $keys;
aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/callback.php');

得到未授权的Request Token值后,就利用上面的代码可以开始准备去新浪微博授权页面进行授权,$aurl就是授权链接页面,得到$aurl后就可以利用header()直接跳转到该授权页面,然后用户输入新浪微博帐号和密码进行授权,授权完成后,自动跳回你在最后一个参数里面设置的回调页面:http://localhost/callback.php,该链接你可以设置为上一个页面,这样授权完成之后就会自动又跳转回去了。

注意:设置session的keys的值是必须的,它在下面获取到授权的Access Token中是需要用到的。很多的朋友可能会参考其开放平台上面的说明来进行授权时,可发现总是出错,一般都是这个问题,你并未设置session的keys值,在下面当然取不到Access Token的值了,这个一定要记住了。

3.得到用户授权的Access Token
 

代码示例:
<?php
$o = new WeiboOAuth( WB_AKEY ,
WB_SKEY ,
$_SESSION['keys']['oauth_token'] ,
$_SESSION['keys']['oauth_token_secret'] );
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
echo($last_key['oauth_token']);
 

以上代码,最终获得了用户授权的Access Token,共两个值,它们保存在$last_key数组变量里面,也可以看到,后面的两个参数就是前面设置的session值。到此就基本完成了,这就是新浪微博用户授权的一个完整的过程。

授权完成后的工作

在授权完成之后,就可以开始调用新浪微博提供的各类API函数接口进行实际应用的开发了,在这里对获取最新微博记录这个接口作下简单说明,其他都类似。
获取最新新浪微博信息的API接口函数是:public_timeline(),样例代码看下面:
 

代码示例:
<?php
//获取前20条最新更新的公共微博消息
$c = new WeiboClient( WB_AKEY ,
WB_SKEY ,
$oauth_token ,
$oauth_token_secret );
$msg = $c->public_timeline();
if ($msg === false || $msg === null){
echo "Error occured";
return false;
}
if (isset()($msg['error_code']) && isset($msg['error'])){
echo ('Error_code: '.$msg['error_code'].'; Error: '.$msg['error'] );
return false;
}
print_r($msg);

通常在得到用户授权的Access Token值之后,就把它们保存在的用户表中,与的应用中的帐号进行对应,之后在调用新浪微博各api接口时就不用每次都去认证了。

实例化WeiboClient对象,然后直接调用接口函数public_timeline就可以得到返回的信息,如果没有错误的话。通常新浪微博api接口返回的数据格式一般为Json格式或xml格式,而在此是用php进行开发,则使用Json格式的数据就有先天的优势,如果返回Json格式数据的话,直接使用php函数json_decode()()就可以转换为php常用的array数组格式了。


    
[2]php获取新浪微博数据API的实例代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php获取新浪微博数据API

要取得新浪微博的数据,可以通过其提供的API,地址:http://open.weibo.com/wiki/API文档_V2。

获取数据的方法:
 

代码示例:

<?php
/**
* 通过新浪微博数据API取得微博数据
* edit: www.
*/
function getWeiboData()
{
 $count = 15;
 // 参数source后面输入你的授权号
 $url = "https://api.weibo.com/2/statuses/home_timeline.json?source=123456789&count=".$count."&page=1";
 echo $url.'<br />';

 $curl = curl_init();
 curl_setopt($curl, CURLOPT_URL, $url);
 // 设置是否显示header信息 0是不显示,1是显示  默认为0
 //curl_setopt($curl, CURLOPT_HEADER, 0);
 // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。0显示在屏幕上,1不显示在屏幕上,默认为0
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
 // 要验证的用户名密码
 curl_setopt($curl, CURLOPT_USERPWD, "username:password");
 $data = curl_exec($curl);
 curl_close($curl);

 $result = json_decode()($data, true);

 echo '<pre>';
 print_r($result);
 echo '</pre>';
}
?>

说明:
json_decode($data) 会输出一个对象,而json_decode($data, true) 则强制输出为数组。
获取数组则使用了 CURL 库。


    
[3]php防止SQL注入攻击与XSS攻击的方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
SQL注入攻击与XSS攻击的防范方法

在php编程中,所有有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss。
注意,中文要写出htmlentitiess($name,ENT_NOQUOTES,GB2312)。
 
mysql_real_escape_string()

SQL语句中,如果有类似这样的写法:

代码示例:
"select * from cdr where src =".$userId;

要修改为:
 

代码示例:
$userId=mysql_real_escape_string($userId)

另外,有打印的语句如echo,print等 在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意,中文要写出htmlentities($name,ENT_NOQUOTES,GB2312) 。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3