新浪微博开放平台WeiboClient类的公共方法(PHP)

相关文章:

一、PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础
二、建立微博应用的过程
三、PHP SDK中Demo程序简析
四、进一步学习的走向和有用的资源
五、必须交待的几个问题
【PDF全文下载】


  在初步掌握微博应用开发的流程后,建议通读一遍weibooauth.php中的代码,优先读class WeiboClient中公共方法的定义。这些方法都是直接操作微博和用户的,清楚有哪些方法,其调用接口、默认参数等。 

  本文提供了class WeiboClient中公共方法的说明。这些方法用于直接操作微博和用户的,需要很熟练地使用,熟知每个方法的名称、参数和返回值类型。大多函数的返回值为array,还需要通过API文档知道对应array中各字段的信息。

  例如,WeiboClient类中有公共方法的定义:

    /**
     * 发表图片微博
     * @access public
     * @param string $text 要更新的微博信息。
     * @param string $text 要发布的图片路径,支持url。[只支持png/jpg/gif三种格式,增加格式请修改get_image_mime方法]
     * @return array
     */
    function upload( $text , $pic_path )

  据此,我们知道发图片微博的代码应该包括:

  (1)创建WeiboClient类的对象实例(该实例来自于授权,一段程序中多种功能可以共用一个实例);

  (2)准备微博信息及图片url;

  (3)用upload方法发送;

  (4)利用返回的array完成后续处理。

  例如:

<?php
$c = new WeiboClient( WB_AKEY ,
                      WB_SKEY ,
                     $_SESSION['last_key']['oauth_token'] ,
                     $_SESSION['last_key']['oauth_token_secret']  );
$t=’新微博’;
$p=’ http://ww1.sinaimg.cn/large/67c69b94gw1dqf3w3vct0j.jpg’;
$rr = $c ->upload( $t, $p );
echo "<p>发送完成</p>" ;
}
?>

  下面是class WeiboClient中公共方法的说明。

class WeiboClient
{
    /**
     * 构造函数
     * 
     * @access public
     * @param mixed $akey 微博开放平台应用APP KEY
     * @param mixed $skey 微博开放平台应用APP SECRET
     * @param mixed $accecss_token OAuth认证返回的token
     * @param mixed $accecss_token_secret OAuth认证返回的token secret
     * @return void
     */
    function __construct( $akey , $skey ,$accecss_token , $accecss_token_secret )
 
    /**
     * 最新公共微博
     * 
     * @access public
     * @return array
     */
    function public_timeline()
 
    /**
     * 最新关注人微博
     * 
     * @access public
     * @return array
     */
    function friends_timeline()
 
 
    /**
     * 最新关注人微博
     * 
     * @access public
     * @return array
     */
    function home_timeline()
 
    /**
     * 最新@用户的
     * 
     * @access public
     * @param int $page 返回结果的页序号。
     * @param int $count 每次返回的最大记录数(即页面大小),不大于200,默认为20。
     * @return array
     */
    function mentions( $page = 1 , $count = 20)
 
 
    /**
     * 发表微博
     * 
     * @access public
     * @param mixed $text 要更新的微博信息。
     * @return array
     */
    function update( $text )
 
   
    /**
     * 发表图片微博
     * 
     * @access public
     * @param string $text 要更新的微博信息。
     * @param string $text 要发布的图片路径,支持url。[只支持png/jpg/gif三种格式,增加格式请修改get_image_mime方法
     ]
     * @return array
     */
    function upload( $text , $pic_path )
 
 
    /**
     * 获取单条微博
     * 
     * @access public
     * @param mixed $sid 要获取已发表的微博ID
     * @return array
     */
    function show_status( $sid )
 
    /**
     * 删除微博
     * 
     * @access public
     * @param mixed $sid 要删除的微博ID
     * @return array
     */
    function delete( $sid )
 
 
    /**
     * 删除微博
     * 
     * @access public
     * @param mixed $sid 要删除的微博ID
     * @return array
     */
    function destroy( $sid )
 
 
    /**
     * 个人资料
     * 
     * @access public
     * @param mixed $uid_or_name 用户UID或微博昵称。
     * @return array
     */
    function show_user( $uid_or_name = null )
 
    /**
     * 关注人列表
     * 
     * @access public
     * @param bool $cursor 单页只能包含100个关注列表,为了获取更多则cursor默认从-1开始,通过增加或减少cursor来获
     取更多的关注列表
     * @param bool $count 每次返回的最大记录数(即页面大小),不大于200,默认返回20
     * @param mixed $uid_or_name 要获取的 UID或微博昵称
     * @return array
     */
    function friends( $cursor = false , $count= false , $uid_or_name = null )
 
 
    /**
     * 粉丝列表
     * 
     * @access public
     * @param bool $cursor 单页只能包含100个粉丝列表,为了获取更多则cursor默认从-1开始,通过增加或减少cursor来获
     取更多的粉丝列表
     * @param bool $count 每次返回的最大记录数(即页面大小),不大于200,默认返回20。
     * @param mixed $uid_or_name  要获取的UID或微博昵称
     * @return array
     */
    function followers( $cursor = false ,$count = false , $uid_or_name = null )
 
 
    /**
     * 关注一个用户
     * 
     * @access public
     * @param mixed $uid_or_name 要关注的用户UID或微博昵称
     * @return array
     */
    function follow( $uid_or_name )
 
 
    /**
     * 取消关注某用户
     * 
     * @access public
     * @param mixed $uid_or_name 要取消关注的用户UID或微博昵称
     * @return array
     */
    function unfollow( $uid_or_name )
 
 
    /**
     * 返回两个用户关系的详细情况
     * 
     * @access public
     * @param mixed $uid_or_name 要判断的用户UID
     * @return array
     */
    function is_followed( $uid_or_name )
 
 
    /**
     * 用户发表微博列表
     *  
     * @access public
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @param mixed $uid_or_name 指定用户UID或微博昵称
     * @return array
     */
    function user_timeline( $page = 1 , $count= 20 , $uid_or_name = null )
 
 
    /**
     * 获取私信列表
     * 
     * @access public
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @return array
     */
    function list_dm( $page = 1 , $count =20  )
 
 
    /**
     * 发送的私信列表
     * 
     * @access public
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @return array
     */
    function list_dm_sent( $page = 1 , $count =20 )
 
 
    /**
     * 发送私信
     * 
     * @access public
     * @param mixed $uid_or_name UID或微博昵称
     * @param mixed $text 要发生的消息内容,文本大小必须小于300个汉字。
     * @return array
     */
    function send_dm( $uid_or_name , $text )
 
 
    /**
     * 删除一条私信
     * 
     * @access public
     * @param mixed $did 要删除的私信主键ID
     * @return array
     */
    function delete_dm( $did )
 
 
    /**
     * 转发一条微博信息。
     * 
     * @access public
     * @param mixed $sid 转发的微博ID
     * @param bool $text 添加的转发信息。
     * @return array
     */
    function repost( $sid , $text = false )
 
 
    /**
     * 对一条微博信息进行评论
     * 
     * @access public
     * @param mixed $sid 要评论的微博id
     * @param mixed $text 评论内容
     * @param bool $cid 要评论的评论id
     * @return array
     */
    function send_comment( $sid , $text , $cid= false )
 
 
    /**
     * 发出的评论
     * 
     * @access public
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @return array
     */
    function comments_by_me( $page = 1 , $count= 20 )
 
 
    /**
     * 最新评论(按时间)
     * 
     * @access public
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @return array
     */
    function comments_timeline( $page = 1 ,$count = 20 )
 
 
    /**
     * 单条评论列表(按微博)
     * 
     * @access public
     * @param mixed $sid 指定的微博ID
     * @param int $page 页码
     * @param int $count 每次返回的最大记录数,最多返回200条,默认20。
     * @return array
     */
    function get_comments_by_sid( $sid , $page= 1 , $count = 20 )
 
 
    /**
     * 批量统计微博的评论数,转发数,一次请求最多获取100个。
     * 
     * @access public
     * @param mixed $sids 微博ID号列表,用逗号隔开
     * @return array
     */
    function get_count_info_by_ids( $sids )
 
 
    /**
     * 对一条微博评论信息进行回复。
     * 
     * @access public
     * @param mixed $sid 微博id
     * @param mixed $text 评论内容。
     * @param mixed $cid 评论id
     * @return array
     */
    function reply( $sid , $text , $cid )
 
 
    /**
     * 返回用户的发布的最近20条收藏信息,和用户收藏页面返回内容是一致的。
     * 
     * @access public
     * @param bool $page 返回结果的页序号。
     * @return array
     */
    function get_favorites( $page = false )
 
 
    /**
     * 收藏一条微博信息
     * 
     * @access public
     * @param mixed $sid 收藏的微博id
     * @return array
     */
    function add_to_favorites( $sid )
 
 
    /**
     * 删除微博收藏。
     * 
     * @access public
     * @param mixed $sid 要删除的收藏微博信息ID.
     * @return array
     */
    function remove_from_favorites( $sid )
   
   
    function verify_credentials()
 
    /**
     * 修改头像
     * 
     */    
    function update_avatar( $pic_path )
 
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
为什么需要另外一个Java版本的微博客户端? 新浪微博官方推荐的Java客户端 weibo4j 一直没有发布到maven仓库,而我们是重度maven用户,因而重新发明了这个新的轮子。 通过maven引用weiboclient4j 在项目pom.xml里面加入依赖:  com.github.hoverruan weiboclient4j 0.4.13 使用 Weiboclient4j支持新浪微博API V1和V2(未完成),目前推荐使用V2版本的接口: // 使用你的应用的api key和secret String apiKey = "xxxxxxx";  String apiSecret = "xxxxxxxx";  WeiboClient client = new WeiboClient(apiKey, apiSecret); OAuth2例子: String authorizationCallback = "..."; // 你的Callback地址  String state = "...";  String url = client.getAuthorizationUrl(ResponseType.Code, DisplayType.Default, state, authorizationCallback); // 浏览器重定向到url; 用户授权; 然后返回callback地址  String code = ... // 从新浪的回调请求里面获得code String accessTokenCallback = "..."; // 或者Access Token的Callback地址  SinaWeibo2AccessToken accessToken = client.getAccessTokenByCode(code, accessTokenCallback);  System.out.println("Access token: "   accessToken.getToken());  System.out.println("User Uid: "   accessToken.getUid());  System.out.println("Expires in: "   accessToken.getExpiresIn());  System.out.println("Remind in: "   accessToken.getRemindIn()); 获取用户Timeline例子: StatusService service = client.getStatusService();  Timeline friendsTimeline = service.getFriendsTimeline(); 更多的使用例子可以参考 weiboclient4j.examples.OAuth2CommandLine API参数对象化 WeiboClient里面,大部分的方法都没有Javadoc,取而代之的是大部分的参数都是特定的对象,这样做的原因是因为: 写Javadoc太麻烦 一些API的参数较多,如果使用基本型容易混淆各个参数的含义 IDE对已知型的对象、Enum能提供更友好的提醒和自动完成 所有的参数对象在 package weiboclient4j.params 下面;举一个例子: 使用静态引入 CoreParameters.\*: import static weiboclient4j.params.CoreParameters.*;  FriendshipService service = client.getFriendshipService();  Friendship friendship;  friendship = service.getFriendship(sourceUid(12345), targetUid(67890));  // 或者  friendship = service.getFriendship(sourceScreenName("xxx"), targetScreenName("yyy")); 使用 P: import weiboclient4j.params.P;  FriendshipService service = client.getFriendshipService();  Friendship friendship;  friendship = service.getFriendship(P.sourceUid(12345), P.targetUid(67890));  // 或者  friendship = service.getFriendship(P.sourceScreenName("xxx"), P.targetScreenName("yyy")); 分页对象 Paging 分页相关的参数,全部通过 Paging 对象封装: Paging paging = Paging.create() .sinceId(12345) .count(25);  Timeline timeline = service.getFriendsTimeline(paging, BaseApp.No, Feature.All); // 后两个参数可省略 新浪微博API V2支持情况 API文档 V2 微博接口 StatusService 完成 评论接口 CommentService 完成 用户接口 UserService 完成 关系接口 FriendshipService 完成 帐号接口 AccountService 完成 收藏接口 FavoriteService 完成 话题接口 TrendService 完成 标签接口 TagService 完成 注册接口 RegisterService 完成 搜索接口 SearchService 完成 推荐接口 SuggestionService 完成 提醒接口 RemindService 完成 短链接口 ShortUrlService 完成 通知接口 NotificationService 完成 公共服务接口 CommonService 完成 位置服务接口 PlaceService 完成 地理信息接口 LocationService 开发中

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迂者-贺利坚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值