package weibo4j;
import weibo4j.model.Paging;
import weibo4j.model.PostParameter;
import weibo4j.model.Status;
import weibo4j.model.StatusWapper;
import weibo4j.model.User;
import weibo4j.model.UserWapper;
import weibo4j.model.WeiboException;
import weibo4j.org.json.JSONArray;
import weibo4j.org.json.JSONObject;
import weibo4j.util.WeiboConfig;
public class Suggestion extends Weibo {
private static final long serialVersionUID = 1861364044145921824L;
public Suggestion(String access_token) {
this.access_token = access_token;
}
// ---------------------------------推荐接口---------------------------------------------------
/**
* 返回系统推荐的热门用户列表
*
* @return list of the users
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.1
* @see http://open.weibo.com/wiki/2/suggestions/users/hot
* @since JDK 1.5
*/
public JSONArray suggestionsUsersHot() throws WeiboException {
return client.get(
WeiboConfig.getValue("baseURL") + "suggestions/users/hot.json",
access_token).asJSONArray();
}
public JSONArray suggestionsUsersHot(String category) throws WeiboException {
return client
.get(WeiboConfig.getValue("baseURL")
+ "suggestions/users/hot.json",
new PostParameter[] { new PostParameter("category",
category) }, access_token).asJSONArray();
}
/**
* 获取用户可能感兴趣的人
*
* @return list of the user's id
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.1
* @see http://open.weibo.com/wiki/2/suggestions/users/may_interested
* @since JDK 1.5
*/
public JSONArray suggestionsUsersMayInterested() throws WeiboException {
return client
.get(WeiboConfig.getValue("baseURL")
+ "suggestions/users/may_interested.json", access_token)
.asJSONArray();
}
public JSONArray suggestionsUsersMayInterested(int count, int page)
throws WeiboException {
return client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/users/may_interested.json",
new PostParameter[] { new PostParameter("count", count),
new PostParameter("page", page) }, access_token)
.asJSONArray();
}
/**
* 根据一段微博正文推荐相关微博用户
*
* @return list of the users
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.1
* @see http://open.weibo.com/wiki/2/suggestions/users/by_status
* @since JDK 1.5
*/
public UserWapper suggestionsUsersByStatus(String content)
throws WeiboException {
return User.constructWapperUsers(client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/users/by_status.json",
new PostParameter[] { new PostParameter("content", content) },
access_token));
}
public UserWapper suggestionsUsersByStatus(String content, int num)
throws WeiboException {
return User.constructWapperUsers(client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/users/by_status.json",
new PostParameter[] { new PostParameter("content", content),
new PostParameter("num", num) }, access_token));
}
/**
* 当前登录用户的friends_timeline微博按兴趣推荐排序
*
* @param section
* 排序时间段,距现在n秒内的微博参加排序,最长支持24小时
* @return
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.2
* @see http://open.weibo.com/wiki/2/suggestions/statuses/reorder
* @since JDK 1.5
*/
public StatusWapper suggestionsStatusesReorder(int section)
throws WeiboException {
return Status.constructWapperStatus(client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/statuses/reorder.json",
new PostParameter[] { new PostParameter("section", section) },
access_token));
}
public StatusWapper suggestionsStatusesReorder(int section, int count,
Paging page) throws WeiboException {
return Status
.constructWapperStatus(client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/statuses/reorder.json",
new PostParameter[] {
new PostParameter("section", section),
new PostParameter("count", count) }, page,
access_token));
}
/**
* 当前登录用户的friends_timeline微博按兴趣推荐排序的微博ID
*
* @param section
* 排序时间段,距现在n秒内的微博参加排序,最长支持24小时
* @return
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.2
* @see http://open.weibo.com/wiki/2/suggestions/statuses/reorder/ids
* @since JDK 1.5
*/
public JSONObject suggestionStatusesReorderIds(int section)
throws WeiboException {
return client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/statuses/reorder/ids.json",
new PostParameter[] { new PostParameter("section", section) },
access_token).asJSONObject();
}
public JSONObject suggestionStatusesReorderIds(int section, int count,
Paging page) throws WeiboException {
return client
.get(WeiboConfig.getValue("baseURL")
+ "suggestions/statuses/reorder/ids.json",
new PostParameter[] {
new PostParameter("section", section),
new PostParameter("count", count) }, page,
access_token).asJSONObject();
}
/**
* 返回系统推荐的热门收藏
*
* @return list of the status
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.1
* @see http://open.weibo.com/wiki/2/suggestions/favorites/hot
* @since JDK 1.5
*/
public JSONArray suggestionsFavoritesHot() throws WeiboException {
return client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/favorites/hot.json", access_token)
.asJSONArray();
}
public JSONArray suggestionsFavoritesHot(int page, int count)
throws WeiboException {
return client.get(
WeiboConfig.getValue("baseURL")
+ "suggestions/favorites/hot.json",
new PostParameter[] { new PostParameter("page", page),
new PostParameter("count", count) }, access_token)
.asJSONArray();
}
/**
* 把某人标识为不感兴趣的人
*
* @return user
* @throws WeiboException
* when Weibo service or network is unavailable
* @version weibo4j-V2 1.0.1
* @see http://open.weibo.com/wiki/2/suggestions/users/not_interested
* @since JDK 1.5
*/
public User suggestionsUsersNotInterested(String uid)
throws WeiboException {
return new User(client.post(
WeiboConfig.getValue("baseURL")
+ "suggestions/users/not_interested.json",
new PostParameter[] { new PostParameter("uid", uid) },
access_token).asJSONObject());
}
}