2010年10月11日

花了点时间研究了一下新浪微博的API,把新浪微博api的php demo整合到了codeigniter框架下,解决了以下几点:

  • php版本低于5.3,不能自动加载json函数,在CI的helper中加入json helper
  • CI的url结构不支持request,重写了获取oauth_verifier的方式,使用php自带函数$_SERVER['REQUEST_URI']
  • session没有使用CI的session类,仍旧使用php原始session

结合CI已有功能,就能方便与新浪微博联通了。

目前新浪微博API支持:

时间线

  • function public_timeline()
  • function friends_timeline()
  • function home_timeline()
  • function user_timeline( $page = 1 , $count = 20 , $uid_or_name = null )
  • function user_timeline( $uid_or_name )

微博

  • function mentions( $page = 1 , $count = 20 )
  • function update( $text )
  • function show_status( $sid )
  • function delete( $sid )
  • function destroy( $sid )

转发和评论

  • function repost( $sid , $text = false )
  • function send_comment( $sid , $text , $cid = false )
  • function comments_by_me( $page = 1 , $count = 20 )
  • function comments_timeline( $page = 1 , $count = 20 )
  • function get_comments_by_sid( $sid , $page = 1 , $count = 20 )
  • function reply( $sid , $text , $cid )

计数

  • function get_count_info_by_ids( $sids )

用户和关系

  • function show_user( $uid_or_name = null )
  • function friends( $cursor = false , $count = false , $uid_or_name = null )
  • function followers( $cursor = false , $count = false , $uid_or_name = null )
  • function follow( $uid_or_name )
  • function unfollow( $uid_or_name )
  • function is_followed( $uid_or_name )
  • function verify_credentials()

私信

  • function list_dm( $page = 1 , $count = 20 )
  • function list_dm_sent( $page = 1 , $count = 20 )
  • function send_dm( $uid_or_name , $text )
  • function delete_dm( $did )

收藏

  • function get_favorites( $page = false )
  • function add_to_favorites( $sid )
  • function remove_from_favorites( $sid )

在CI的controll中只需如下引用,就能轻松实现以上功能了:

$c = new WeiboClient( $this->config->item(‘WB_AKEY’) , $this->config->item(‘WB_SKEY’) , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
$ms  = $c->home_timeline();

Codeigniter(php框架)下的新浪微博api插件源码下载:下载代码

php源代码已经根据CI目录结构进行放置,下载后可以直接复制到application目录中使用。如有疑问欢迎微博@nickyhu

Tags: ,,.
2010年09月23日

codeigniter发布了一个大版本,从1.7.2直接来到了2.0。变化颇多,所以要从1.7.2升级到2.0,会是一个痛苦的过程。

简单记录几个升级要点:

  • 原来的model文件中的“Model”需要全部改写成“CI_Model”
  • captcha由原来的plugin变成了helper:$this->load->helper(‘captcha’);
  • plugin目录彻底废除,原来的plugin要变成helper
  • application目录与system平级了,部署的时候需要注意
  • 如果之前框架里有使用第三方的代码,需要根据以上变化进行修改

codeigniter2.0到底有何长足进步,目前还没搞明白,欢迎高人指点与讨论。

Tags: ,.