腾讯微博java(android)sdk关系链api详细介绍
本文主要介绍腾讯微博android sdk中关系链有关的10个接口,以及使用的示例代码
注意:以下所有的api示例代码都需要先新建QqTSdkService类对象qqTSdkService并初始化,见sdk使用总介绍
1、10个接口介绍
这10个接口包含了腾讯微博关系链相关中的互听关系链列表(对某个用户而言,既是他的听众又被他收听)、其他帐号听众列表、其他帐号收听的人列表、其他帐户特别收听的人列表、黑名单列表、我的听众列表、我的听众列表(只包含名字)、我收听的人列表、我收听的人列表(只包含名字)、我的特别收听列表10个api
对应函数图如下(其中getUserRelationsCommon为公用函数):

?
2、示例代码
由于这10个接口类似,以我收听的人列表(getSelfInterested)、
我的听众列表(getSelfFansNames 只输出name)、
其他用户的听众列表(getOtherUserFans)为例
2.1 ?函数形式
这20个接口同样都有两种参数即qqTUserRelationPara、普通
三种返回结果即字符串、List<QqTUser>、QqTResponse,可根据需要调用。
以我收听的人列表(getSelfInterested)为例
public String getSelfInterestedStr(QqTUserRelationPara qqTUserRelationPara);public String getSelfInterestedStr(String format, int reqNumber, int startIndex);public List<QqTUser> getSelfInterested(QqTUserRelationPara qqTUserRelationPara);public List<QqTUser> getSelfInterested(int reqNumber, int startIndex);public QqTResponse getSelfInterestedRes(QqTUserRelationPara qqTUserRelationPara);public QqTResponse getSelfInterestedRes(int reqNumber, int startIndex);
String getSelfInterested返回整个结果的字符串,可以通过format定义以xml还是json形式返回
List<QqTUser> getSelfInterested将返回的json串中用户列表转换成QqTStatus list
getSelfInterestedRes返回QqTResponse,QqTResponse是先得到json串的结果,然后转换为QqTResponse对象
其中包含返回结果中各个字段含义。data字段为List<QqTUser> getSelfInterested返回的QqTStatus list。
其他关系链api类似
?
2.2 参数意义
对于各参数意义同腾讯微博关系链api参数,
第一种形式参数通过QqTUserRelationPara传入,QqTUserRelationPara各参数意义如下

第二种形式参数为:
以字符串结果返回的api中format为返回字符串的格式,取值为QqTConstant.VALUE_FORMAT_JSON和QqTConstant.VALUE_FORMAT_XML。
String userName表示用户帐户名
String userOpenId表示用户open id
int reqNumber表示请求个数
int startIndex表示起始位置(第一页填0,继续向下翻页,填:[reqnum*(page-1)])?
?
2.3、不同返回结果调用示例
2.3.1 字符串形式返回
public void testGetSelfFansNamesStr() { QqTUserRelationPara qqTUserRelationPara = new QqTUserRelationPara(); qqTUserRelationPara.setFormat(QqTConstant.VALUE_FORMAT_JSON); qqTUserRelationPara.setReqNumber(QqTConstant.VALUE_PAGE_REQ_NUM); qqTUserRelationPara.setStartIndex(0); String myFansStr = qqTSdkService.getSelfFansNamesStr(qqTUserRelationPara); assertTrue(myFansStr != null); }以上代码得到我的听众列表,只输出name,所有api为getSelfFansNamesStr
?
2.3.2?List<QqTStatus>形式返回
public void testGetSelfInterested() { QqTUserRelationPara qqTUserRelationPara = new QqTUserRelationPara(); qqTUserRelationPara.setReqNumber(QqTConstant.VALUE_PAGE_REQ_NUM); qqTUserRelationPara.setStartIndex(0); List<QqTUser> qqTUserList = qqTSdkService.getSelfInterested(qqTUserRelationPara); /** 第二页 **/ if (qqTUserList.size() >= qqTUserRelationPara.getReqNumber() && qqTUserList.get(qqTUserList.size() - 1) != null) { /** 设置第二页起始位置(第一页填0,继续向下翻页:填:reqnum*(page-1)) **/ qqTUserRelationPara.setStartIndex(QqTConstant.VALUE_PAGE_REQ_NUM); List<QqTUser> nextqqTUserList = qqTSdkService.getSelfInterested(qqTUserRelationPara); assertTrue(nextqqTUserList != null); } else { assertTrue(qqTUserList != null); } }?以上代码得到我收听的人列表,并进行翻页获取,所有api为getSelfInterested
?
2.3.3 QqTResponse形式返回
public void testGetOtherUserFans() { QqTUserRelationPara qqTUserRelationPara = new QqTUserRelationPara(); qqTUserRelationPara.setReqNumber(QqTConstant.VALUE_PAGE_REQ_NUM); qqTUserRelationPara.setStartIndex(0); /** 设置用户帐户名,注意不是显示名,以http://t.qq.com/li_nian为例 **/ qqTUserRelationPara.setUserName("li_nian"); QqTResponse qqTResponse = qqTSdkService.getOtherUserFansRes(qqTUserRelationPara); /** 第二页 **/ if (qqTResponse.getData() != null) { /** 获得QqTResponse中的用户列表信息 **/ List<QqTUser> qqTUserList = (List<QqTUser>)((QqTListData)qqTResponse.getData()).getInfo(); if (qqTUserList.size() >= qqTUserRelationPara.getReqNumber() && qqTUserList.get(qqTUserList.size() - 1) != null) { /** 设置第二页起始位置(第一页填0,继续向下翻页:填:reqnum*(page-1)) **/ qqTUserRelationPara.setStartIndex(QqTConstant.VALUE_PAGE_REQ_NUM); QqTResponse nextQqTResponse = qqTSdkService.getOtherUserFansRes(qqTUserRelationPara); assertTrue(nextQqTResponse != null); } else { assertTrue(qqTResponse != null); } } else { assertTrue(false); } }以上代码得到其他账户(li_nian为例)以的听众列表,并进行翻页获取,所有api为getOtherUserFansRes
从QqTResponse中获得用户列表为 (List<QqTUser>)((QqTListData)qqTResponse.getData()).getInfo()
?
2.4 翻页
见上面2.2.2和2.2.3中的翻页代码
?
整个sdk api使用见:http://trinea.iteye.com/blog/1299505
?
