Skip to content
Open
82 changes: 82 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@

=================

用于新浪微博开放平台的PHP SDK. 内含能直接使用的DEMO.

SAE(Sina App Engine, http://sae.sina.com.cn )已内置SDK,不需要下载,使用前需要手工调用 require_once('saetv2.ex.class.php');

composer
-----
composer.phar require xiaosier/libweibo:dev-master

更新
-----

+ 2013年2月20日 修改V2版一处notice
+ 2011年12月16日 修改V2版两处手误
+ 2011年10月21日 发布V2版PHP SDK,基于 http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2 中的最新接口封装。
+ 2011年6月16日 发布OAuth2版PHP SDK,删除Basic认证的SDK(微博开放平台已不支持Basic认证)
+ 2010年11月17日 修改了demo程序默认callback url在某些访问方式下不正确的问题.
+ 2010年6月29日Basic认证版本&OAuth版本添加verify_credentials函数,用于获取当前用户信息,OAuth添加update_avatar更新头像
+ 2010年5月5日 Basic 认证版本添加图片发布支持
+ 2010年5月12日 OAuth 认证版本添加图片支持

说明
-----
**Demo演示地址**

+ V2版Demo: http://weibosdk.sinaapp.com/
+ 站内应用Demo: http://apps.weibo.com/weibosdk
+ OAuth版Demo: http://saettest.sinaapp.com/

**如何申请API Key**

你需要有一个新浪微博开放平台的API Key.这里申请: http://open.weibo.com

**关于Class的功能**

+ 基于OAuth认证.
+ 完成至2011年10月21日止,全部接口的封装

**新浪微博V2版PHPSDK Demo使用教程**

+ 1.在open.weibo.com创建应用,得到API KEY,设置“授权设置”中的“应用回调页”地址为"http://host/callback.php",其中host为网站域名。
+ 2.下载Demo,然后解压,修改config.php中的WB_AKEY为App Key,WB_SKEY为App Secret,WB_CALLBACK_URL为刚才填入的回调页地址。
+ 3.上传到PHP空间即可

**新浪微博站内应用Demo使用教程**
+ 1.在open.weibo.com创建站内应用,得到API KEY
+ 2.编辑应用属性,设置"应用页面"中的“站内应用地址”
+ 3.下载,解压,修改config.php中的WB_AKEY为App Key,WB_SKEY为App Secret,CANVAS_PAGE为“应用页面”中设置的”站内应用地址“
+ 4.上传代码到PHP空间
+ 5.编辑应用属性,设置"应用页面"中的"应用实际地址"为刚刚上传代码的apps.php的地址,比如:"http://xxxxx.sinaapp.com/apps.php",设置“Iframe高度“为2000px。
+ 6.访问刚刚设置的“站内应用地址”即可。

**OAuth版Demo使用教程**
+ 1.在open.weibo.com创建应用,得到API KEY
+ 2.下载,然后解压,修改config.php中的WB_AKEY为App Key,WB_SKEY为App Secret。
+ 3.上传到PHP空间即可


Bug tracker
-----------

Have a bug? Please create an issue here on GitHub!

https://github.com/xiaosier/libweibo/issues


Authors
-------

+ http://weibo.com/lazypeople
+ http://lazy.changes.com.cn


License
---------------------

Copyright 2011 SINA, Inc.
Copyright 2011 SAE

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
22 changes: 22 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "xiaosier/libweibo",
"type": "library",
"description": "PHP sdk for Weibo open platform",
"keywords": ["sdk","weibo"],
"homepage": "http://github.com/xiaosier/libweibo",
"license": "MIT",
"authors": [
{
"name": "lazypeople",
"email": "hfutming@gmail.com",
"homepage": "http://lazy.changes.com.cn",
"role": "Developer"
}
],
"require": {
"php": ">=5.0.0"
},
"autoload": {
"files": ["saetv2.ex.class.php"]
}
}
57 changes: 32 additions & 25 deletions saetv2.ex.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,11 @@ function http($url, $method, $postfields = NULL, $headers = array()) {
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_ENCODING, "");
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, 1);
if (version_compare(phpversion(), '5.4.0', '<')) {
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, 1);
} else {
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, 2);
}
curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
curl_setopt($ci, CURLOPT_HEADER, FALSE);

Expand Down Expand Up @@ -600,7 +604,7 @@ function home_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $bas
*/
function friends_timeline( $page = 1, $count = 50, $since_id = 0, $max_id = 0, $base_app = 0, $feature = 0 )
{
return $this->home_timeline( $since_id, $max_id, $count, $page, $base_app, $feature);
return $this->home_timeline($page, $count, $since_id, $max_id, $base_app, $feature);
}

/**
Expand Down Expand Up @@ -1114,15 +1118,38 @@ function upload( $status, $pic_path, $lat = NULL, $long = NULL )
* 对应API:{@link http://open.weibo.com/wiki/2/statuses/upload_url_text statuses/upload_url_text}
*
* @param string $status 要发布的微博文本内容,内容不超过140个汉字。
* @param int $visible 微博的可见性,0:所有人能看,1:仅自己可见,2:密友可见,3:指定分组可见,默认为0
* @param string $list_id 微博的保护投递指定分组ID,只有当visible参数为3时生效且必选。
* @param string $pic_id 已经上传的图片pid,多个时使用英文半角逗号符分隔,最多不超过9个。
* @param float $lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
* @param float $long 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
* @param string $annotations 元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博可以包含一个或者多个元数据,
* 必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定。
* @param string $url 图片的URL地址,必须以http开头。
* @return array
*/
function upload_url_text( $status, $url )
function upload_url_text( $status, $url , $visible=0, $list_id=NULL, $pic_id=NULL, $lat = NULL, $long=NULL, $annotations=NULL)
{
$params = array();
$params['status'] = $status;
$params['url'] = $url;
return $this->oauth->post( 'statuses/upload', $params, true );
$params['visible'] = $visible;
if (!is_null($list_id)) {
$params['list_id'] = $list_id;
}
if (!is_null($pic_id)) {
$params['pic_id'] = $pic_id;
}
if (!is_null($lat)) {
$params['lat'] = $lat;
}
if (!is_null($long)) {
$params['long'] = $long;
}
if (!is_null($annotations)) {
$params['annotations'] = $annotations;
}
return $this->oauth->post( 'statuses/upload_url_text', $params, true );
}


Expand Down Expand Up @@ -1447,26 +1474,6 @@ function show_user_by_name( $screen_name )

return $this->oauth->get( 'users/show', $params );
}


/**
* 根据长链接获取短链
*
* 根据长链接获取短链返地址。
* <br />对应API:{@link http://open.weibo.com/wiki/2/short_url/shorten}
*
* @access public
* @param string $url 长链接地址。
* @return array
*/
function get_short_url( $url )
{
$params=array();
if ( $url !== NULL ) {
$params['url_long'] = $url;
}
return $this->oauth->get( 'short_url/shorten', $params);
}

/**
* 通过个性化域名获取用户资料以及用户最新的一条微博
Expand Down Expand Up @@ -2494,7 +2501,7 @@ function update_profile_image( $image_path )
$params = array();
$params['image'] = "@{$image_path}";

return $this->oauth->post('account/avatar/upload', $params);
return $this->oauth->post('account/avatar/upload', $params, true);
}

/**
Expand Down