新浪微博的示例weibolist.php中有一个通过API发送微博的代码,我们分析一下,看看它是怎么实现的,代码如下:
session_start();
include_once( 'config.php'
);
include_once( 'saetv2.ex.class.php' );
$c = new SaeTClientV2( WB_AKEY ,
WB_SKEY , $_SESSION['token']['access_token']
);$ms =
$c->home_timeline(); // done
$uid_get = $c->get_uid();
$uid = $uid_get['uid'];
$user_message = $c->show_user_by_id(
$uid);//根据ID获取用户等基本信息
?>
/p>
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
新浪微博V2接口演示程序-Powered by SinaApp Engine
=$user_message['screen_name']?>,您好!
align="left">发送新微博
>
type="text" name="text" style="width:300px" />
type="submit" />
if( isset($_REQUEST['text']) )
{
$ret = $c->update(
$_REQUEST['text'] ); //发送微博
if ( isset($ret['error_code'])
&& $ret['error_code']
> 0 ) {
echo
"
发送失败,错误:{$ret['error_code']}:{$ret['error']}
";} else {
echo
"
发送成功
";}
}?>
?>
?>
=$item['text'];?>
首先通过用户授权来获取用户登陆token,代码注释说明文档作用,分析如下:
session_start();
//包含用户开发授权信息
include_once( 'config.php'
);
//包含API类信息
include_once( 'saetv2.ex.class.php' );
$c = new SaeTClientV2( WB_AKEY ,
WB_SKEY , $_SESSION['token']['access_token'] )
然后等待用户输入微博信息,即:
type="text" name="text" style="width:300px" />
type="submit" />
如果用户提交了微博内容,则调用API,保存微博信息:
if( isset($_REQUEST['text']) ) {
$ret = $c->update(
$_REQUEST['text'] ); //发送微博
if ( isset($ret['error_code'])
&& $ret['error_code']
> 0 ) {
echo
"
发送失败,错误:{$ret['error_code']}:{$ret['error']}
";} else {
echo
"
发送成功
";}
}
?>
其中关键的类方法是update,在新浪API文档中参数说明如下:
必选
类型及范围
说明
source
false
string
采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey。
access_token
false
string
采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
status
true
string
要发布的微博文本内容,必须做URLencode,内容不超过140个汉字。
lat
false
float
纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
long
false
float
经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
annotations
false
string
元数据,主要是为了方便第三方应用记录一些适合于自己使用的信息,每条微博可以包含一个或者多个元数据,必须以json字串的形式提交,字串长度不超过512个字符,具体内容可以自定。
详细的新浪API说明在这里。