OAuthTutorial

跳转到: 导航, 搜索
(创建新页面为 '本文介绍使用PHP libweibo (http://code.google.com/p/libweibo/) 来进行OAuth验证及微博接口调用 =准备工作= 要使用微博开放平台之前,你必须拥有…')
 
 
(未显示1个用户的1个中间版本)
第21行: 第21行:
  
 
= 使用libweibo =
 
= 使用libweibo =
由于微博接口属于SAE以外的服务,所以我们需要手工载入class,并初始化对象.
+
# 下载,然后解压,修改config.php中的key
 +
# 打开index.php,将13行最后一个url改成你网站对应的callback.php的url
 +
用户被带到微博授权页面上,当他点击同意后,微博会将他转向到callback.php.
  
include_once( 'saet.ex.class.php' );
+
=WeiboClient 支持的方法=
$o = new SaeT( WB_AKEY , WB_SKEY ); // APP KEY和APP SECRET
+
==时间线==
  
然后进行上一段中的(1)
+
    * 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 )  
  
$keys = $o->getRequestToken(); // 取得oauth_token
+
==微博==
  
接着获得(2)中要用到的url,第三个参数指定了回调页面
+
    * function mentions( $page = 1 , $count = 20 )
 +
    * function update( $text )
 +
    * function show_status( $sid )
 +
    * function delete( $sid )
 +
    * function destroy( $sid )
  
$aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://'. $_SERVER['HTTP_APPNAME'] . '.sinaapp.com/callback.php');
+
==转发和评论==
  
通过提示用户点击链接或者header(”Location:aulr”)等方式将页面转向.
+
    * function repost( $sid , $text = false )
 
+
    * function send_comment( $sid , $text , $cid = false )
用户被带到微博授权页面上,当他点击同意后,微博会将他转向到callback.php.
+
    * 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 )
  
我们在callback.php里边继续.
+
==计数==
  
因为是一个新的页面,需要重新载入class并初始化.
+
    * function get_count_info_by_ids( $sids )
  
include_once( 'saet.ex.class.php' );
+
==用户和关系==
$o = new SaeT( WB_AKEY , WB_SKEY , $_SESSION['keys']['oauth_token'] , $_SESSION['keys']['oauth_token_secret'] );
+
  
注意这里new的时候多带了两个参数,是在(A)处获得的值.因为跨页面了,我们一般把它们存在Session里边.
+
    * function show_user( $uid_or_name = null )
oauth_verifier就在callback接收到的$_REQUEST里边.这三个值准备好后,我们再请求最后一次认证.
+
    * 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 )
  
$last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ;
+
==私信==
  
这样我们就得到了(C)处的两个值.在它们过期之前(微博目前是永久的),我们都可以直接通过这两个值来和微博进行数据交换了.
+
    * function list_dm( $page = 1 , $count = 20 )
$o = new SaeT( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret'] );
+
    * function list_dm_sent( $page = 1 , $count = 20 )
 +
    * function send_dm( $uid_or_name , $text )
 +
    * function delete_dm( $did )  
  
// 取得用户的最近5条微博
+
==收藏==
$ms = $o->get("http://api.t.sina.com.cn/statuses/user_timeline.json?count=5");
+
    * function get_favorites( $page = false )
 +
    * function add_to_favorites( $sid )
 +
    * function remove_from_favorites( $sid )
  
// 发布微博
 
$o->post( "http://api.t.sina.com.cn/statuses/update.json" , array( 'status' => 'always test' ) );
 
  
libweibo 下载地址为 http://code.google.com/p/libweibo/
+
libweibo 可以在以下地址下载 http://code.google.com/p/libweibo/
 +
libweibo也可以在Sina App Engine环境运行,请参考SAE官方博客文章 http://blog.sae.sina.com.cn/?p=99

2010年3月22日 (一) 15:58的最后版本

本文介绍使用PHP libweibo (http://code.google.com/p/libweibo/) 来进行OAuth验证及微博接口调用

目录

准备工作

要使用微博开放平台之前,你必须拥有一个微博开放平台的帐号,可以到这里申请,http://t.sina.com.cn/11051/3f4cXR5Tej 申请通过后,微博开放平台会给你APP KEY(CONSUMER KEY)和CONSUMER SECRET.

只有拥有APP KEY和APP SECRET才能和微博平台进行交互

了解OAuth

微博开放平台支持两种认证方式,一种是需要用户输入用户名和密码的Basic验证,一种是不需要用户提供密码的OAuth.我们只提供OAuth方式的class.

OAuth通过应用和微博授权页面之间的跳转来进行授权. 其步骤为

  1. 应用向微博平台发起请求,获得一个临时的oauth_token,和oauth_token_secret(A),这套key被称为request token.
  2. 应用将用户转向到微博授权页面,同时带上这个token和一个回调页面地址
  3. 用户在微博上同意授权后,会生成oauth_verifier(B),并在转向到回调页面是带上这个值.
  4. 应用通过$_REQUEST得到oauth_verifier,再加上之前(A)处的oauth_token和oauth_token_secret,向微博发起最后一次请求.
  5. 微博平台验证无误后,发给应用另外一套oauth_token和oauth_token_secret(C),这套key被成为access token.
  6. 拿到access token意味着应用已经获得了授权.之后应用就可以通过access token获取和发送微博了.

access token不用每次都去取,可以把它保存下来,供下次使用.这样性能更高.

使用libweibo

  1. 下载,然后解压,修改config.php中的key
  2. 打开index.php,将13行最后一个url改成你网站对应的callback.php的url

用户被带到微博授权页面上,当他点击同意后,微博会将他转向到callback.php.

WeiboClient 支持的方法

时间线

   * 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 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 )


libweibo 可以在以下地址下载 http://code.google.com/p/libweibo/ libweibo也可以在Sina App Engine环境运行,请参考SAE官方博客文章 http://blog.sae.sina.com.cn/?p=99

文档更新时间: 2010-03-22