新浪微博api的一点总结

新浪微博开放接口的应用,网上有太多的教程,即便是只看新浪给出的例子,也能把微博弄的八九不离十。微博公开的信息其实并不多,也可能是出自于对网民的个人信息保密,至少是邮箱没有公开。

1.http://open.weibo.com/申请应用,获取App Key和App Secret,自不必说;

2.下载SDK,我用的后台脚本是Php,故选择php的“通过OAuth验证方式”,下载后解压会发现,其实是一个比较完整的demo实例,在config里面替换了之前申请的App Key和App Secret,直接上传到服务器上,发现并不能直接运行,主要是修改以下几点:

a.php.ini文件中,extension=php_curl.dll前的";"去掉,重启apache服务。

b.在新浪给的demo文件中,对脚本书写的格式并不规范,<? .... ?>格式改为规范的<?php ....?>,这样可以保证不做特别的设置就可以在apache环境下运行。

c.index.php文件中的回调函数的路径可以写为绝对路径。

3.应用。

<?php

session_start();
//if( isset($_SESSION['last_key']) ) header("Location: weibolist.php");
include_once( 'config.php' );
include_once( 'weibooauth.php' );

 

$o = new WeiboOAuth( WB_AKEY , WB_SKEY  );

$keys = $o->getRequestToken();
$aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://localhost/weibodemo/callback.php');

$_SESSION['keys'] = $keys;


?>
<a href="<?php echo $aurl;?>">Use Oauth to login</a>

其他文件中<? ... ?>最好也要改为<?php ?>,这样不出意外,就可以看到成功调用页面weibolist.php文件了,可以看到最近的20条微博信息,可以更新微博内容和头像信息。

 

查看新浪微博公开的个人信息:

<?php session_start();?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

include_once( 'config.php' );
include_once( 'weibooauth.php' );


$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
$ms  = $c->home_timeline(); // done
$me = $c->verify_credentials();
$userinfos =$c->show_user($me['name']);
echo "<br />";
echo count($userinfos);
foreach($userinfos as $val => $inds){
 if(is_array($inds)){
  foreach($inds as $vals => $idnex){
   echo $vals."=>".$idnex."<br />";
  }
 }else{
  echo $val."=>".$inds."<br />";
 }
 
}


?>

调用show_user方法即可,传的参数为“用户名”。从输出看,微博公开的信息是比较少的,至少是没有邮箱一项,因为有了邮箱,可以干很多事情。不过,可以取的用户的id项,这对于每个用户来说也是唯一的,用到自己的系统中,也未尝不可。

 

调用个人头像信息:<?php echo "http://tp2.sinaimg.cn/".$userinfos['id']."/50/".$userinfos['id']; ?>打开输出的这个链接,即可以看到用户头像中的小头像,如果想使用大一些的头像,可以改为:<?php echo "http://tp2.sinaimg.cn/".$userinfos['id']."/180/".$userinfos['id']; ?>。

 

还有一个相对重要的信息可以取,那就是用户的注册地址,用到自己的系统中也不错。

 

发微博功能:在demo中weibolist.php文件中,给的例子是GET方式传参,text=blur+blur...,这种方式总归不太美观,在地址栏里面出现一大堆的东西,因此可以采用POST方式传参,再配合使用jquery或者js的ajax方式,页面甚至不需要跳转,就可以达到发送微博的功能。

<textarea name="textarea" data-maxsize="140" data-output="tips" wrap="virtual"  class="limited" cols="40" rows="4" id='reason' style="resize: none;word-wrap:break-word;"></textarea><!--data-maxsize="140"使用字数限制插件,可以去掉。-->

<p id="upload"><img src="images/bt.gif" width="97" height="31" border="0"/></p><!--一个提交button图片,此处可以放任何东西-->

<input type="checkbox" value="yes" name="toweibo" id="toweibo" />是否同步到微博?

<script>

$("#upload").click(function(){
  var reasons = $("#reason").val();
  if($("#toweibo").attr("checked")==true){//
   $.post("ToWeibo.php",{value:reasons},function(data,textStatus){})
  }
 })

</script>

ToWeibo.php代码

<?php session_start();?>
<?php
include_once( 'weibodemo/config.php' );
include_once( 'weibodemo/weibooauth.php' );
$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
$ms  = $c->home_timeline(); // done
$me = $c->verify_credentials();
if( isset($_POST['value']) ){
 $rr = $c->update( $_POST['value'] );
 echo "true";
}
?>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值