/** * http://auzll.iteye.com/ */ package com.gengweibo.weibo; import static com.gengweibo.weibo.Weibo.Method.GET; import static com.gengweibo.weibo.Weibo.Method.POST; import org.json.JSONException; import org.json.JSONObject; /** * @author auzll@msn.com * @since 2011-3-16 */ public class WeiboSohu extends Weibo implements IWeibo { /** */ private static final long serialVersionUID = 3375792387585554576L; public WeiboSohu() { super("http://api.t.sohu.com/oauth/request_token", "http://api.t.sohu.com/oauth/authorize", "http://api.t.sohu.com/oauth/access_token", "http://api.t.sohu.com", OAuthProperty.getCallbackUrl(), OAuthProperty.CONSUMER_KEY_SOHU, OAuthProperty.CONSUMER_SECRET_SOHU, WeiboType.T_SOHU); } public void bindWeiboAccountContext() { if (null == weiboId && null == weiboAccountName) { Response response = verifyCredentials(); try { JSONObject jsonObject = new JSONObject( response.readBodyAsString()); weiboId = getType().getEnName() + "_" + jsonObject.getString("id"); weiboAccountName = jsonObject.getString("screen_name"); if (null != weiboAccountName) { weiboAccountName = weiboAccountName.trim(); } } catch (JSONException e) { throw new WeiException(e); } } } public Response favoritesCreate(IParam param) { String id = param.getParamValue("statusId"); return sendRequest(null, urlResource + "favourites/create/" + id + ".json", POST); } public Response friendshipsCreate(IParam param) { String userId = param.getParamValue("userId"); return sendRequest(null, urlResource + "friendships/create/" + userId + ".json", POST); } public Response friendshipsDestroy(IParam param) { String userId = param.getParamValue("userId"); return sendRequest(null, urlResource + "friendships/destroy/" + userId + ".json", POST); } public Response homeTimeline(IParam param) { RequestParam reqParam = toRequestParam("count", parseLegalPageCount(param.getParamValue("count"))); if (null != param.getParamValue("max_id")) { reqParam.add("max_id", param.getParamValue("max_id")); } return sendRequest(reqParam, urlResource + "statuses/friends_timeline.json", GET); } public Response statusesComments(IParam param) { RequestParam reqParam = toRequestParam("count", PAGE_MAX); String page = "1"; if (null != param.getParamValue("page")) { page = param.getParamValue("page"); } reqParam.add("page", page); return sendRequest( reqParam, urlResource + "statuses/comments/" + param.getParamValue("statusId") + ".json", GET); } public Response statusesCounts(IParam param) { return sendRequest( toRequestParam("ids", param.getParamValue("statusIds")), urlResource + "statuses/counts.json", GET); } public Response statusesReply(IParam param) { return sendRequest( toRequestParam("comment", param.getParamValue("status")).add( "id", param.getParamValue("statusId")), urlResource + "statuses/comment.json", POST); } public Response statusesRetweet(IParam param) { String id = param.getParamValue("statusId"); RequestParam reqParam = null; if (null != param.getParamValue("status")) { reqParam = toRequestParam("status", param.getParamValue("status")); } return sendRequest(reqParam, urlResource + "statuses/transmit/" + id + ".json", POST); } public Response statusesMentions(IParam param) { RequestParam reqParam = toRequestParam("count", parseLegalPageCount(param.getParamValue("count"))); if (null != param.getParamValue("max_id")) { reqParam.add("max_id", param.getParamValue("max_id")); } return sendRequest(reqParam, urlResource + "statuses/mentions_timeline.json", GET); } public Response statusesCommentsToMe(IParam param) { RequestParam reqParam = toRequestParam("count", parseLegalPageCount(param.getParamValue("count"))); if (null != param.getParamValue("max_id")) { reqParam.add("max_id", param.getParamValue("max_id")); } return sendRequest(reqParam, urlResource + "statuses/comments_timeline.json", GET); } }