`

腾讯微博java(android)sdk时间线api详细介绍

 
阅读更多

本文主要介绍腾讯微博android sdk中时间线有关的20个接口,以及正常获取及翻页的使用的示例代码部分特例

注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见sdk使用总介绍


1、20个接口介绍

这20个接口包含了腾讯微博四部分api

1.1、时间线中的除statuses/ht_timeline_ext(话题时间线)以外的15个api

1.2、私信相关中的收件箱、发件箱两个api

1.3、数据收藏中的收藏的微博列表和获取已订阅话题列表两个api

1.4、微博相关中的获取单条微博的转发或点评列表api

对应函数图如下(其中getTimeLineCommon为公用函数):

2、示例代码

由于这20个接口类似,仅以主页时间线(getHomeTL)为例,对于特殊接口再加以补充

2.1  函数形式

这20个接口同样都有三种返回结果即字符串、List<QqTStatus>QqTResponse,可根据需要调用

以主页时间线为例

public String getHomeTLStr(QqTTimelinePara qqTTimelinePara);
public List<QqTStatus> getHomeTL(QqTTimelinePara qqTTimelinePara);
public QqTResponse getHomeTLRes(QqTTimelinePara qqTTimelinePara);

getHomeTLStr返回整个结果的字符串,可以通过qqTTimelinePara.setFormat定义以xml还是json形式返回

getHomeTL将返回的json结果串中微博列表转换为QqTStatus list

getHomeTLRes返回QqTResponse,QqTResponse是先得到json串的结果,然后转换为QqTResponse对象

其中包含返回结果中各个字段含义。data字段为getHomeTL返回的微博list。

其他时间线api类似,参考腾讯微博api wiki对应api的参数,设置qqTTimelinePara即可

 

2.2 参数意义

对于各参数意义同腾讯微博时间线api参数,通过QqTTimelinePara传入,QqTTimelinePara各参数意义如下

 

2.3、不同返回结果调用示例

2.3.1 字符串形式返回

    public void testGetHomeTLStr() {
        QqTTimelinePara qqTTimelinePara = new QqTTimelinePara();
        /** 设置返回结果格式 **/
        qqTTimelinePara.setFormat(QqTConstant.VALUE_FORMAT_XML);
        /** 设置分页标识 **/
        qqTTimelinePara.setPageFlag(0);
        /** 设置起始时间 **/
        qqTTimelinePara.setPageTime(0);
        /** 每次请求记录的条数 **/
        qqTTimelinePara.setPageReqNum(QqTConstant.VALUE_PAGE_REQ_NUM);
        /** 可以设置拉取类型,可取值QqTConstant中VALUE_STATUS_TYPE_TL_…,这里取原创发表 **/
        qqTTimelinePara.setStatusType(QqTConstant.VALUE_STATUS_TYPE_TL_ORIGINAL);
        /** 可以设置微博内容类型,可取值QqTConstant中VALUE_CONTENT_TYPE_TL…,这里取音乐 **/
        qqTTimelinePara.setContentType(QqTConstant.VALUE_CONTENT_TYPE_TL_MUSIC);
        String homeStr = qqTSdkService.getHomeTLStr(qqTTimelinePara);
        assertTrue(homeStr != null);
    }
 

2.3.2 List<QqTStatus>形式返回

    public void testGetHomeTL() {
        QqTTimelinePara qqTTimelinePara = new QqTTimelinePara();
        /** 设置分页标识 **/
        qqTTimelinePara.setPageFlag(0);
        /** 设置起始时间 **/
        qqTTimelinePara.setPageTime(0);
        /** 每次请求记录的条数 **/
        qqTTimelinePara.setPageReqNum(QqTConstant.VALUE_PAGE_REQ_NUM);
        /** 可以设置拉取类型,可取值QqTConstant中VALUE_STATUS_TYPE_TL_… **/
        qqTTimelinePara.setStatusType(QqTConstant.VALUE_STATUS_TYPE_TL_ALL);
        /** 可以设置微博内容类型,可取值QqTConstant中VALUE_CONTENT_TYPE_TL… **/
        qqTTimelinePara.setContentType(QqTConstant.VALUE_CONTENT_TYPE_TL_ALL);
        List<QqTStatus> qqTStatusList = qqTSdkService.getHomeTL(qqTTimelinePara);
        assertTrue(qqTStatusList != null);
    }

2.3.3 QqTResponse形式返回

    public void testGetHomeTLRes() {
        QqTTimelinePara qqTTimelinePara = new QqTTimelinePara();
        /** 设置分页标识 **/
        qqTTimelinePara.setPageFlag(0);
        /** 设置起始时间 **/
        qqTTimelinePara.setPageTime(0);
        /** 每次请求记录的条数 **/
        qqTTimelinePara.setPageReqNum(QqTConstant.VALUE_PAGE_REQ_NUM);
        /** 可以设置拉取类型,可取值QqTConstant中VALUE_STATUS_TYPE_TL_… **/
        qqTTimelinePara.setStatusType(QqTConstant.VALUE_STATUS_TYPE_TL_ALL);
        /** 可以设置微博内容类型,可取值QqTConstant中VALUE_CONTENT_TYPE_TL… **/
        qqTTimelinePara.setContentType(QqTConstant.VALUE_CONTENT_TYPE_TL_ALL);
        QqTResponse qqTResponse = qqTSdkService.getHomeTLRes(qqTTimelinePara);
        assertTrue(qqTResponse != null);
    }

 

2.4 翻页

需要setPageFlag、setPageTime以及setLastId,代码如下:

        QqTTimelinePara qqTTimelinePara = new QqTTimelinePara();
        /** 设置分页标识 **/
        qqTTimelinePara.setPageFlag(0);
        /** 设置起始时间 **/
        qqTTimelinePara.setPageTime(0);
        /** 每次请求记录的条数 **/
        qqTTimelinePara.setPageReqNum(QqTConstant.VALUE_PAGE_REQ_NUM);
        /** 可以设置拉取类型,可取值QqTConstant中VALUE_STATUS_TYPE_TL_… **/
        qqTTimelinePara.setStatusType(QqTConstant.VALUE_STATUS_TYPE_TL_ALL);
        /** 可以设置微博内容类型,可取值QqTConstant中VALUE_CONTENT_TYPE_TL… **/
        qqTTimelinePara.setContentType(QqTConstant.VALUE_CONTENT_TYPE_TL_ALL);
        List<QqTStatus> qqTStatusList = qqTSdkService.getHomeTL(qqTTimelinePara);

        /** 第二页 **/
        if (qqTStatusList.size() >= qqTTimelinePara.getPageReqNum()
            && qqTStatusList.get(qqTStatusList.size() - 1) != null) {
            qqTTimelinePara.setPageFlag(QqTConstant.VALUE_NEXT_PAGE);
            qqTTimelinePara.setPageTime(qqTStatusList.get(qqTStatusList.size() - 1).getTime());
            qqTTimelinePara.setLastId(qqTStatusList.get(qqTStatusList.size() - 1).getStatusId());
            List<QqTStatus> nextPageQqTStatusList = qqTSdkService.getHomeTL(qqTTimelinePara);
        }

对于getHomeTLRes返回的结果QqTResponse,只需要取出其中的data转换为QqTListData类型,再得到info,从中得到上次最后一条微博信息传入即可

 

其他时间线api翻页可能需要传入不同的参数,具体参考腾讯微博api wiki对应api的参数,设置qqTTimelinePara即可

 

3、特例

关于获取单条微博的转发或点评列表的api为getStatusCommentsCommon,该api被三个函数调用,如下:

分别表示得到某条微博的评论、评论和转发、转发信息。以获得某条微博的评论列表(getStatusComments)为例,调用如下:

    public void testGetStatusComments() {
        QqTStatusInfoPara status = new QqTStatusInfoPara();
        status.setStatusContent("发表一条微博用来查看评论列表啦");
        QqTResponse qqTResponse = qqTSdkService.addStatusRes(status);

        /** 先评论新增的微博,再获得评论列表 **/
        if (qqTResponse.getIsOk() && qqTResponse.getData() != null) {
            int commentCount = 2;
            for (int i = 1; i <= commentCount; i++) {
                /** 设置评论的微博id **/
                status.setSourceId(((QqTIdAndTime)qqTResponse.getData()).getId());
                status.setStatusContent("评论列表评论微博啦" + i);
                qqTSdkService.comment(status);
            }

            /** 获得评论列表 **/
            QqTTimelinePara qqTTimelinePara = new QqTTimelinePara();
            qqTTimelinePara.setPageFlag(0);
            qqTTimelinePara.setPageTime(0);
            qqTTimelinePara.setPageReqNum(QqTConstant.VALUE_PAGE_REQ_NUM);
            qqTTimelinePara.setTwitterId(0);
            /** 设置微博id,表示获得该微博的评论列表 **/
            qqTTimelinePara.setRootId(((QqTIdAndTime)qqTResponse.getData()).getId());
            List<QqTStatus> qqTStatusList = qqTSdkService.getStatusComments(qqTTimelinePara);
            assertTrue(qqTStatusList.size() == commentCount);
        } else {
            assertTrue(false);
        }
    }

上述代码主要完成发表一条微博,然后对其进行评论,最后获得评论列表

其中qqTSdkService.getStatusComments(qqTTimelinePara);为关键代码


整个sdk api使用见:http://trinea.iteye.com/blog/1299505


  • 大小: 71.7 KB
  • 大小: 125.1 KB
分享到:
评论

相关推荐

    android仿腾讯微博客户端

    2. 数据获取与展示:微博内容的获取主要依赖于腾讯微博API,如获取用户的时间线、热门微博等。使用Android的RecyclerView组件展示列表,结合Gson库解析JSON数据,实现动态加载和下拉刷新功能。 3. 图片加载:微博中...

    android 腾讯微博客户端

    5. **网络编程**:使用HttpURLConnection或OkHttp库进行网络请求,获取腾讯微博API的数据,如用户信息、时间线动态等。需要注意处理异步任务,防止阻塞主线程。 6. **JSON解析**:接收到的微博数据通常是JSON格式,...

    Android 腾讯微博客户端源码1.rar

    2. **腾讯微博API**:源码中可能包含了对腾讯微博开放平台API的调用,如登录验证、发布微博、获取时间线、评论互动等功能。 3. **社交网络集成**:如何在Android应用中整合社交功能,实现用户登录、数据同步、分享...

    MicroBlog微博

    这些接口涵盖了用户登录认证、发布微博、查看时间线、评论、转发等核心功能。通过OAuth2.0授权协议,用户可以安全地授权应用访问自己的微博数据。开发者需要处理好请求的签名、参数构造以及错误处理等细节,确保应用...

    android多微博客户端Cuckoo

    3. **API接口调用**:开发者需要理解和使用各个微博平台提供的API,如发布微博、获取时间线、评论、点赞等操作。 4. **UI设计**:Android应用的界面设计遵循Material Design指南,提供一致且友好的用户体验。 5. *...

    毕业论文安卓557手机微博客户端app.doc

    1. 技术框架:本项目采用Java语言开发,利用Android SDK构建应用,结合腾讯微博提供的API服务,实现与微博服务器的交互。 2. 需求分析:主要包括用户登录、好友微博浏览、个人微博发布、私信通信、用户信息查看等...

Global site tag (gtag.js) - Google Analytics