package com.tencent.weibo.api;
import org.apache.http.message.BasicNameValuePair;
import com.tencent.weibo.beans.OAuth;
import com.tencent.weibo.utils.QArrayList;
import com.tencent.weibo.utils.QHttpClient;
/**
* 关系链相关API
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%85%B3%E7%B3%BB%E9%93%BE%E7%9B%B8%E5%85%B3">腾讯微博开放平台上关系链相关的API文档<a>
*/
public class FriendsAPI extends BasicAPI {
private String friendsFansListUrl=apiBaseUrl+"/friends/fanslist";
private String friendsIdolListUrl=apiBaseUrl+"/friends/idollist";
private String friendsAddUrl=apiBaseUrl+"/friends/add";
private String friendsDelUrl=apiBaseUrl+"/friends/del";
private String friendsCheckUrl=apiBaseUrl+"/friends/check";
private String friendsUserFansListUrl=apiBaseUrl+"/friends/user_fanslist";
private String friendsUserIdolListUrl=apiBaseUrl+"/friends/user_idollist";
private String friendsUserSpecialListUrl=apiBaseUrl+"/friends/user_speciallist";
private String friendsFansListSUrl=apiBaseUrl+"/friends/fanslist_s";
/**
* 使用完毕后,请调用 shutdownConnection() 关闭自动生成的连接管理器
* @param OAuthVersion 根据OAuthVersion,配置通用请求参数
*/
public FriendsAPI(String OAuthVersion) {
super(OAuthVersion);
}
/**
* @param OAuthVersion 根据OAuthVersion,配置通用请求参数
* @param qHttpClient 使用已有的连接管理器
*/
public FriendsAPI(String OAuthVersion, QHttpClient qHttpClient) {
super(OAuthVersion, qHttpClient);
}
/**
* 我的听众列表
*
* @param oAuth 标准参数
* @param format 返回数据的格式 是(json或xml)
* @param reqnum 请求个数(1-30)
* @param startindex 起始位置(第一页填0,继续向下翻页:填:【reqnum*(page-1)】)
* @param mode 获取模式,默认为0
* <li>mode=0,旧模式,新粉丝在前,只能拉取1000个
* <li>mode=1,新模式,拉取全量粉丝,老粉丝在前
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E6%88%91%E7%9A%84%E5%90%AC%E4%BC%97%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String fanslist(OAuth oAuth, String format, String reqnum,
String startindex, String mode, String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("mode", mode));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsFansListUrl,
paramsList, oAuth);
}
/**
* 我收听的人列表
*
* @param oAuth 标准参数
* @param format 返回数据的格式 是(json或xml)
* @param reqnum 请求个数(1-30)
* @param startindex 起始位置(第一页填0,继续向下翻页:填:【reqnum*(page-1)】)
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E6%88%91%E6%94%B6%E5%90%AC%E7%9A%84%E4%BA%BA%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String idollist(OAuth oAuth, String format, String reqnum,
String startindex, String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsIdolListUrl,
paramsList, oAuth);
}
/**
* 收听某个用户<br>
*
* @param oAuth 标准参数
* @param format 返回数据的格式 是(json或xml)
* @param name 他人的帐户名列表,用","隔开
* @param fopenids 你需要读取的用户openid列表,用下划线“_”隔开,例如:B624064BA065E01CB73F835017FE96FA_B624064BA065E01CB73F835017FE96FB(可选,最多30个) <br>
* name和fopenids至少选一个,若同时存在则以name值为主
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E6%94%B6%E5%90%AC%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7">腾讯微博开放平台上关于此条API的文档</a>
*/
public String add(OAuth oAuth, String format, String name,String fopenids ) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("name", name));
paramsList.add(new BasicNameValuePair("fopenids", fopenids ));
return requestAPI.postContent(friendsAddUrl, paramsList,
oAuth);
}
/**
* 取消收听某个用户
*
* @param oAuth 标准参数
* @param format 回数据的格式 是(json或xml)
* @param name 他人的帐户名
* @param fopenid 他人的openid(可选) <br>
* name和fopenid至少选一个,若同时存在则以name值为主
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E5%8F%96%E6%B6%88%E6%94%B6%E5%90%AC%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7">腾讯微博开放平台上关于此条API的文档</a>
*/
public String del(OAuth oAuth, String format, String name,String fopenid) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("name", name));
paramsList.add(new BasicNameValuePair("fopenid", fopenid));
return requestAPI.postContent(friendsDelUrl, paramsList,
oAuth);
}
/**
* 检测是否我的听众或我收听的人
*
* @param oAuth 标准参数
* @param format 返回数据的格式 是(json或xml)
* @param names names 其他人的帐户名列表,用逗号“,”分隔,如aaa,bbb(最多30个,可选)
* @param fopenids 其他人的的用户openid列表,用“_”隔开,例如:B624064BA065E01CB73F835017FE96FA_B624064BA065E01CB73F835017FE96FB(可选,最多30个) <br>
* names和fopenids至少选一个,若同时存在则以names值为主
* @param flag 0 检测听众,1检测收听的人 2 两种关系都检测
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E6%A3%80%E6%B5%8B%E6%98%AF%E5%90%A6%E6%88%91%E7%9A%84%E5%90%AC%E4%BC%97%E6%88%96%E6%94%B6%E5%90%AC%E7%9A%84%E4%BA%BA">腾讯微博开放平台上关于此条API的文档</a>
*/
public String check(OAuth oAuth, String format, String names,String fopenids,String flag) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("names", names));
paramsList.add(new BasicNameValuePair("fopenids", fopenids));
paramsList.add(new BasicNameValuePair("flag", flag));
return requestAPI.getResource(friendsCheckUrl, paramsList,
oAuth);
}
/**
* 获取其他用户听众列表
*
* @param oAuth 标准参数
* @param format 返回数据的格式 是(json或xml)
* @param reqnum 请求个数(1-30)
* @param startindex 起始位置(第一页填0,继续向下翻页:填【reqnum*(page-1)】)
* @param name 用户帐户名
* @param fopenid 他人的openid(可选) <br>
* name和fopenid至少选一个,若同时存在则以name值为主
* @param mode 获取模式,默认为0
* <li>mode=0,旧模式,新粉丝在前,只能拉取1000个
* <li>mode=1,新模式,拉取全量粉丝,老粉丝在前
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E5%85%B6%E4%BB%96%E5%B8%90%E6%88%B7%E5%90%AC%E4%BC%97%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String userFanslist(OAuth oAuth, String format, String reqnum,
String startindex,String name,String fopenid,String mode,String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("name", name));
paramsList.add(new BasicNameValuePair("fopenid", fopenid));
paramsList.add(new BasicNameValuePair("mode", mode));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsUserFansListUrl,
paramsList, oAuth);
}
/**
* 其他帐户收听的人列表
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param reqnum 请求个数(1-30)
* @param startindex 起始位置(第一页填0,继续向下翻页:填【reqnum*(page-1)】)
* @param name 用户帐户名
* @param fopenid 他人的openid(可选) <br>
* name和fopenid至少选一个,若同时存在则以name值为主
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E5%85%B6%E4%BB%96%E5%B8%90%E6%88%B7%E6%94%B6%E5%90%AC%E7%9A%84%E4%BA%BA%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String userIdollist(OAuth oAuth, String format, String reqnum,
String startindex,String name, String fopenid,String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("name", name));
paramsList.add(new BasicNameValuePair("fopenid", fopenid));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsUserIdolListUrl,
paramsList, oAuth);
}
/**
* 其他帐户特别收听的人列表
*
* @param oAuth
* @param format 返回数据的格式(json或xml)
* @param reqnum 请求个数(1-30)
* @param startindex 起始位置(第一页填0,继续向下翻页:填【reqnum*(page-1)】)
* @param name 用户帐户名(可选)
* @param fopenid 他人的openid(可选) <br>
* name和fopenid至少选一个,若同时存在则以name值为主
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E5%85%B6%E4%BB%96%E5%B8%90%E6%88%B7%E7%89%B9%E5%88%AB%E6%94%B6%E5%90%AC%E7%9A%84%E4%BA%BA%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String userSpeciallist(OAuth oAuth, String format, String reqnum,
String startindex,String name, String fopenid,String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("name", name));
paramsList.add(new BasicNameValuePair("fopenid", fopenid));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsUserSpecialListUrl,
paramsList, oAuth);
}
/**
* 我的粉丝列表,简单信息(200个)
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param reqnum 请求个数(1-200)
* @param startindex 起始位置(第一页填0,继续向下翻页:填:【reqnum*(page-1)】)
* @param install 过滤安装应用好友(可选) <br>
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%B8%90%E6%88%B7%E7%9B%B8%E5%85%B3/%E6%88%91%E7%9A%84%E5%90%AC%E4%BC%97%E5%88%97%E8%A1%A8%EF%BC%8C%E7%AE%80%E5%8D%95%E4%BF%A1%E6%81%AF%EF%BC%88200%E4%B8%AA%EF%BC%89">腾讯微博开放平台上关于此条API的文档</a>
*/
public String fanslistS(OAuth oAuth, String format, String reqnum,
String startindex,String install) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("startindex", startindex));
paramsList.add(new BasicNameValuePair("install", install));
return requestAPI.getResource(friendsFansListSUrl,
paramsList, oAuth);
}
public void setAPIBaseUrl(String apiBaseUrl) {
this.apiBaseUrl=apiBaseUrl;
friendsFansListUrl=apiBaseUrl+"/friends/fanslist";
friendsIdolListUrl=apiBaseUrl+"/friends/idollist";
friendsAddUrl=apiBaseUrl+"/friends/add";
friendsDelUrl=apiBaseUrl+"/friends/del";
friendsCheckUrl=apiBaseUrl+"/friends/check";
friendsUserFansListUrl=apiBaseUrl+"/friends/user_fanslist";
friendsUserIdolListUrl=apiBaseUrl+"/friends/user_idollist";
friendsUserSpecialListUrl=apiBaseUrl+"/friends/user_speciallist";
friendsFansListSUrl=apiBaseUrl+"/friends/fanslist_s";
}
}