package com.weibo.sdk.android.api;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.WeiboParameters;
import com.weibo.sdk.android.net.RequestListener;
/**
* * 此类封装了关系的接口,详情见<a href=http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2#.E5.85.B3.E7.B3.BB">关系接口</a>
* @author xiaowei6@staff.sina.com.cn
*
*/
public class FriendshipsAPI extends WeiboAPI {
public FriendshipsAPI(Oauth2AccessToken accessToken) {
super(accessToken);
}
private static final String SERVER_URL_PRIX = API_SERVER + "/friendships";
/**
* 获取用户的关注列表
*
* @param uid 需要查询的用户UID。
* @param count 单页返回的记录条数,默认为50,最大不超过200。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param trim_status 返回值中user字段中的status字段开关,false:返回完整status字段、true:status字段仅返回status_id,默认为true。
* @param listener
*/
public void friends( long uid, int count, int cursor, boolean trim_status,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("cursor", cursor);
if (trim_status) {
params.add("trim_status", 1);
} else {
params.add("trim_status", 0);
}
request( SERVER_URL_PRIX + "/friends.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户的关注列表
*
* @param screen_name 需要查询的用户昵称。
* @param count 单页返回的记录条数,默认为50,最大不超过200。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param trim_status 返回值中user字段中的status字段开关,false:返回完整status字段、true:status字段仅返回status_id,默认为true。
* @param listener
*/
public void friends( String screen_name, int count, int cursor,
boolean trim_status, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("count", count);
params.add("cursor", cursor);
if (trim_status) {
params.add("trim_status", 0);
} else {
params.add("trim_status", 1);
}
request( SERVER_URL_PRIX + "/friends.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取两个用户之间的共同关注人列表
*
* @param uid 需要获取共同关注关系的用户UID。
* @param suid 需要获取共同关注关系的用户UID,默认为当前登录用户。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param trim_status 返回值中user字段中的status字段开关,false:返回完整status字段、true:status字段仅返回status_id,默认为true。
* @param listener
*/
public void inCommon( long uid, long suid, int count, int page, boolean trim_status,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("suid", suid);
params.add("count", count);
params.add("page", page);
if (trim_status) {
params.add("trim_status", 1);
} else {
params.add("trim_status", 0);
}
request( SERVER_URL_PRIX + "/friends/in_common.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取用户的双向关注列表,即互粉列表
*
* @param uid 需要获取双向关注列表的用户UID。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void bilateral( long uid, int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/friends/bilateral.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取用户双向关注的用户ID列表,即互粉UID列表
*
* @param uid 需要获取双向关注列表的用户UID。
* @param count 单页返回的记录条数,默认为50,最大不超过2000。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void bilateralIds( long uid, int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/friends/bilateral/ids.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取用户关注的用户UID列表
*
* @param uid 需要查询的用户UID。
* @param count 单页返回的记录条数,默认为500,最大不超过5000。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param listener
*/
public void friendsIds( long uid, int count, int cursor, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("cursor", cursor);
request( SERVER_URL_PRIX + "/friends/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户关注的用户UID列表
*
* @param screen_name 需要查询的用户昵称。
* @param count 单页返回的记录条数,默认为500,最大不超过5000。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param listener
*/
public void friendsIds( String screen_name, int count, int cursor,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("count", count);
params.add("cursor", cursor);
request( SERVER_URL_PRIX + "/friends/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户的粉丝列表(最多返回5000条数据)
*
* @param uid 需要查询的用户UID。
* @param count 单页返回的记录条数,默认为50,最大不超过200。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param trim_status 返回值中user字段中的status字段开关,false:返回完整status字段、true:status字段仅返回status_id,默认为false。
* @param listener
*/
public void followers( long uid, int count, int cursor, boolean trim_status,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("cursor", cursor);
if (trim_status) {
params.add("trim_status", 0);
} else {
params.add("trim_status", 1);
}
request( SERVER_URL_PRIX + "/followers.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户的粉丝列表(最多返回5000条数据)
*
* @param screen_name 需要查询的用户昵称。
* @param count 单页返回的记录条数,默认为50,最大不超过200。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param trim_status 返回值中user字段中的status字段开关,false:返回完整status字段、true:status字段仅返回status_id,默认为false。
* @param listener
*/
public void followers( String screen_name, int count, int cursor,
boolean trim_status, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("count", count);
params.add("cursor", cursor);
if (trim_status) {
params.add("trim_status", 0);
} else {
params.add("trim_status", 1);
}
request( SERVER_URL_PRIX + "/followers.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户粉丝的用户UID列表
*
* @param uid 需要查询的用户UID。
* @param count 单页返回的记录条数,默认为500,最大不超过5000。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param listener
*/
public void followersIds( long uid, int count, int cursor, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("cursor", cursor);
request( SERVER_URL_PRIX + "/followers/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户粉丝的用户UID列表
*
* @param screen_name 需要查询的用户昵称。
* @param count 单页返回的记录条数,默认为500,最大不超过5000。
* @param cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。
* @param listener
*/
public void followersIds( String screen_name, int count, int cursor,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("count", count);
params.add("cursor", cursor);
request( SERVER_URL_PRIX + "/followers/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户的活跃粉丝列表
*
* @param uid 需要查询的用户UID。
* @param count 返回的记录条数,默认为20,最大不超过200。
* @param listener
*/
public void followersActive( long uid, int count, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
request( SERVER_URL_PRIX + "/followers/active.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户的关注人中又关注了指定用户的用户列表
*
* @param uid 指定的关注目标用户UID。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void chainFollowers( long uid, int count, int page, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/friends_chain/followers.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取两个用户之间的详细关注关系情况
*
* @param source_id 源用户的UID。
* @param target_id 目标用户的UID。
* @param listener
*/
public void show( long source_id, long target_id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("source_id", source_id);
params.add("target_id", target_id);
request( SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取两个用户之间的详细关注关系情况
*
* @param source_id 源用户的UID。
* @param target_screen_name 目标用户的微博昵称
* @param listener
*/
public void show( long source_id, String target_screen_name, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("source_id", source_id);
params.add("target_screen_name", target_screen_name);
request( SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取两个用户之间的详细关注关系情况
*
* @param source_screen_name 源用户的微博昵称。
* @param target_id 目标用户的UID。
* @param listener
*/
public void show( String source_screen_name, long target_id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("source_screen_name", source_screen_name);
params.add("target_id", target_id);
request( SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取两个用户之间的详细关注关系情况
*
* @param source_screen_name 源用户的微博昵称。
* @param target_screen_name 目标用户的微博昵称
* @param listener
*/
public void show( String source_screen_name, String target_screen_name,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("target_screen_name", target_screen_name);
params.add("source_screen_name", source_screen_name);
request(SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 关注一个用户
*
* @param uid 需要关注的用户ID。
* @param screen_name 需要关注的用户昵称。
* @param listener
*/
public void create( long uid, String screen_name, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("screen_name", screen_name);
request( SERVER_URL_PRIX + "/create.json", params, HTTPMETHOD_POST, listener);
}
/**
* 关注一个用户
*
* @param screen_name 需要关注的用户昵称。
* @param listener
*/
@Deprecated
public void create( String screen_name, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
request( SERVER_URL_PRIX + "/create.json", params, HTTPMETHOD_POST, listener);
}
/**
* 取消关注一个用户
*
* @param uid 需要取消关注的用户ID。
* @param screen_name 需要取消关注的用户昵称。
* @param listener
*/
public void destroy(long uid, String screen_name, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("screen_name", screen_name);
request( SERVER_URL_PRIX + "/destroy.json", params, HTTPMETHOD_POST, listener);
}
/**
* 取消关注一个用户
*
* @param screen_name 需要取消关注的用户昵称。
* @param listener
*/
@Deprecated
public void destroy(String screen_name, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
request( SERVER_URL_PRIX + "/destroy.json", params, HTTPMETHOD_POST, listener);
}
}