package com.weibo.sdk.android.api;
import android.text.TextUtils;
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.BE.AE.E5.8D.9A">微博接口</a>
* @author xiaowei6@staff.sina.com.cn
*/
public class StatusesAPI extends WeiboAPI {
public StatusesAPI(Oauth2AccessToken accessToken) {
super(accessToken);
}
private static final String SERVER_URL_PRIX = API_SERVER + "/statuses";
/**
* 返回最新的公共微博
*
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param listener
*/
public void publicTimeline( int count, int page, boolean base_app,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
request( SERVER_URL_PRIX + "/public_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户及其所关注用户的最新微博
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void friendsTimeline( long since_id, long max_id, int count, int page,
boolean base_app, FEATURE feature, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/friends_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户及其所关注用户的最新微博的ID
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param listener
*/
public void friendsTimelineIds(long since_id, long max_id, int count, int page,boolean base_app, FEATURE feature, RequestListener listener){
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
request( SERVER_URL_PRIX + "/friends_timeline/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户及其所关注用户的最新微博
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void homeTimeline( long since_id, long max_id, int count, int page,
boolean base_app, FEATURE feature, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/home_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取某个用户最新发表的微博列表
*
* @param uid 需要查询的用户ID。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void userTimeline( long uid, long since_id, long max_id, int count, int page,
boolean base_app, FEATURE feature, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 01);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/user_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取某个用户最新发表的微博列表
*
* @param screen_name 需要查询的用户昵称。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void userTimeline( String screen_name, long since_id, long max_id, int count,
int page, boolean base_app, FEATURE feature, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/user_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前用户最新发表的微博列表
*
* @param screen_name 需要查询的用户昵称。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void userTimeline( long since_id, long max_id, int count,
int page, boolean base_app, FEATURE feature, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/user_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取用户发布的微博的ID
*
* @param uid 需要查询的用户ID。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param listener
*/
public void userTimelineIds( long uid, long since_id, long max_id, int count,
int page, boolean base_app, FEATURE feature, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("uid", uid);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
request( SERVER_URL_PRIX + "/user_timeline/ids.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取用户发布的微博的ID
*
* @param screen_name 需要查询的用户昵称。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param listener
*/
public void userTimelineIds( String screen_name, long since_id, long max_id,
int count, int page, boolean base_app, FEATURE feature, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("screen_name", screen_name);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
request( SERVER_URL_PRIX + "/user_timeline/ids.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取指定微博的转发微博列表
*
* @param id 需要查询的微博ID。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0。
* @param listener
*/
public void repostTimeline( long id, long since_id, long max_id, int count, int page,
AUTHOR_FILTER filter_by_author, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
params.add("filter_by_author", filter_by_author.ordinal());
request( SERVER_URL_PRIX + "/repost_timeline.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取一条原创微博的最新转发微博的ID
*
* @param id 需要查询的微博ID。
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0。
* @param listener
*/
public void repostTimelineIds( long id, long since_id, long max_id, int count,
int page, AUTHOR_FILTER filter_by_author, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
params.add("filter_by_author", filter_by_author.ordinal());
request( SERVER_URL_PRIX + "/repost_timeline/ids.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 获取当前用户最新转发的微博列表
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param listener
*/
public void repostByMe( long since_id, long max_id, int count, int page,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
request( SERVER_URL_PRIX + "/repost_by_me.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取最新的提到登录用户的微博列表,即@我的微博
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0。
* @param filter_by_source 来源筛选类型,0:全部、1:来自微博、2:来自微群,默认为0。
* @param filter_by_type 原创筛选类型,0:全部微博、1:原创的微博,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void mentions( long since_id, long max_id, int count, int page,
AUTHOR_FILTER filter_by_author, SRC_FILTER filter_by_source,
TYPE_FILTER filter_by_type, boolean trim_user, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
params.add("filter_by_author", filter_by_author.ordinal());
params.add("filter_by_source", filter_by_source.ordinal());
params.add("filter_by_type", filter_by_type.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/mentions.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取@当前用户的最新微博的ID
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param filter_by_author 作者筛选类型,0:全部、1:我关注的人、2:陌生人,默认为0。
* @param filter_by_source 来源筛选类型,0:全部、1:来自微博、2:来自微群,默认为0。
* @param filter_by_type 原创筛选类型,0:全部微博、1:原创的微博,默认为0。
* @param listener
*/
public void mentionsIds( long since_id, long max_id, int count, int page,
AUTHOR_FILTER filter_by_author, SRC_FILTER filter_by_source,
TYPE_FILTER filter_by_type, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
params.add("filter_by_author", filter_by_author.ordinal());
params.add("filter_by_source", filter_by_source.ordinal());
params.add("filter_by_type", filter_by_type.ordinal());
request( SERVER_URL_PRIX + "/mentions/ids.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取双向关注用户的最新微博
*
* @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。
* @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。
* @param count 单页返回的记录条数,默认为50。
* @param page 返回结果的页码,默认为1。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param feature 过滤类型ID,0:全部、1:原创、2:图片、3:视频、4:音乐,默认为0。
* @param trim_user 返回值中user字段开关,false:返回完整user字段、true:user字段仅返回user_id,默认为false。
* @param listener
*/
public void bilateralTimeline( long since_id, long max_id,
int count, int page, boolean base_app, FEATURE feature, boolean trim_user,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("since_id", since_id);
params.add("max_id", max_id);
params.add("count", count);
params.add("page", page);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
params.add("feature", feature.ordinal());
if (trim_user) {
params.add("trim_user", 1);
} else {
params.add("trim_user", 0);
}
request( SERVER_URL_PRIX + "/bilateral_timeline.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 根据微博ID获取单条微博内容
*
* @param id 需要获取的微博ID。
* @param listener
*/
public void show( long id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
request( SERVER_URL_PRIX + "/show.json", params, HTTPMETHOD_GET, listener);
}
/**
* 通过微博(评论、私信)ID获取其MID
*
* @param ids 需要查询的微博(评论、私信)ID,最多不超过20个。
* @param type 获取类型,1:微博、2:评论、3:私信,默认为1。
* @param listener
*/
public void queryMID( long[] ids, TYPE type, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
if(1==ids.length){
params.add("id", ids[0]);
}else{
params.add("is_batch", 1);
StringBuilder strb = new StringBuilder();
for(long id: ids){
strb.append(id).append(",");
}
strb.deleteCharAt(strb.length()-1);
params.add("id", strb.toString());
}
params.add("type", type.ordinal());
request( SERVER_URL_PRIX + "/querymid.json", params, HTTPMETHOD_GET, listener);
}
/**
* 通过微博(评论、私信)MID获取其ID,形如“3z4efAo4lk”的MID即为经过base62转换的MID
*
* @param mids 需要查询的微博(评论、私信)MID,最多不超过20个。
* @param type 获取类型,1:微博、2:评论、3:私信,默认为1。
* @param inbox 仅对私信有效,当MID类型为私信时用此参数,0:发件箱、1:收件箱,默认为0 。
* @param isBase62 MID是否是base62编码,0:否、1:是,默认为0。
* @param listener
*/
public void queryID( String[] mids, TYPE type, boolean inbox, boolean isBase62,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
if(mids!=null){
if(1 == mids.length){
params.add("mid", mids[0]);
}else{
params.add("is_batch", 1);
StringBuilder strb = new StringBuilder();
for(String mid: mids){
strb.append(mid).append(",");
}
strb.deleteCharAt(strb.length()-1);
params.add("mid", strb.toString());
}
}
params.add("type", type.ordinal());
if (inbox) {
params.add("inbox", 0);
} else {
params.add("inbox", 1);
}
if (isBase62) {
params.add("isBase62", 0);
} else {
params.add("isBase62", 1);
}
request( SERVER_URL_PRIX + "/queryid.json", params, HTTPMETHOD_GET, listener);
}
/**
* 按天返回热门微博转发榜的微博列表
*
* @param count 返回的记录条数,最大不超过50,默认为20。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param listener
*/
public void hotRepostDaily( int count, boolean base_app, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
request( SERVER_URL_PRIX + "/hot/repost_daily.json", params, HTTPMETHOD_GET, listener);
}
/**
* 按周返回热门微博转发榜的微博列表,
*
* @param count 返回的记录条数,最大不超过50,默认为20。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param listener
*/
public void hotRepostWeekly( int count, boolean base_app, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
request( SERVER_URL_PRIX + "/hot/repost_weekly.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 按天返回热门微博评论榜的微博列表
*
* @param count 返回的记录条数,最大不超过50,默认为20。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param listener
*/
public void hotCommentsDaily( int count, boolean base_app, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
if (base_app) {
params.add("base_app", 1);
} else {
params.add("base_app", 0);
}
request( SERVER_URL_PRIX + "/hot/comments_daily.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 按周返回热门微博评论榜的微博列表
*
* @param count 返回的记录条数,最大不超过50,默认为20。
* @param base_app 是否只获取当前应用的数据。false为否(所有数据),true为是(仅当前应用),默认为false。
* @param listener
*/
public void hotCommentsWeekly( int count, boolean base_app, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("count", count);
if (base_app) {
params.add("base_app", 0);
} else {
params.add("base_app", 1);
}
request( SERVER_URL_PRIX + "/hot/comments_weekly.json", params, HTTPMETHOD_GET,
listener);
}
/**
* 批量获取指定微博的转发数评论数
*
* @param ids 需要获取数据的微博ID,最多不超过100个。
* @param listener
*/
public void count( String[] ids, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
StringBuilder strb = new StringBuilder();
for (String id : ids) {
strb.append(id).append(",");
}
strb.deleteCharAt(strb.length() - 1);
params.add("ids", strb.toString());
request( SERVER_URL_PRIX + "/count.json", params, HTTPMETHOD_GET, listener);
}
/**
* 转发一条微博
*
* @param id 要转发的微博ID。
* @param status 添加的转发文本,内容不超过140个汉字,不填则默认为“转发微博”。
* @param is_comment 是否在转发的同时发表评论,0:否、1:评论给当前微博、2:评论给原微博、3:都评论,默认为0
* @param listener
*/
public void repost( long id, String status, COMMENTS_TYPE is_comment,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
params.add("status", status);
params.add("is_comment", is_comment.ordinal());
request( SERVER_URL_PRIX + "/repost.json", params, HTTPMETHOD_POST, listener);
}
/**
* 根据微博ID删除指定微博
*
* @param id 需要删除的微博ID。
* @param listener
*/
public void destroy( long id, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("id", id);
request( SERVER_URL_PRIX + "/destroy.json", params, HTTPMETHOD_POST, listener);
}
/**
* 发布一条新微博(连续两次发布的微博不可以重复)
*
* @param content 要发布的微博文本内容,内容不超过140个汉字。
* @param lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
* @param lon 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
* @param listener
*/
public void update( String content, String lat, String lon, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("status", content);
if (!TextUtils.isEmpty(lon)) {
params.add("long", lon);
}
if (!TextUtils.isEmpty(lat)) {
params.add("lat", lat);
}
request( SERVER_URL_PRIX + "/update.json", params, HTTPMETHOD_POST, listener);
}
/**
* 上传图片并发布一条新微博,此方法会处理urlencode
* @param content 要发布的微博文本内容,内容不超过140个汉字
* @param file 要上传的图片,仅支持JPEG、GIF、PNG格式,图片大小小于5M。
* @param lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
* @param lon 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
* @param listener
*/
public void upload( String content, String file, String lat, String lon,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("status", content);
params.add("pic", file);
if (!TextUtils.isEmpty(lon)) {
params.add("long", lon);
}
if (!TextUtils.isEmpty(lat)) {
params.add("lat", lat);
}
request( SERVER_URL_PRIX + "/upload.json", params, HTTPMETHOD_POST, listener);
}
/**
* 指定一个图片URL地址抓取后上传并同时发布一条新微博,此方法会处理URLencode
*
* @param status 要发布的微博文本内容,内容不超过140个汉字。
* @param imageUrl 图片的URL地址,必须以http开头。
* @param lat 纬度,有效范围:-90.0到+90.0,+表示北纬,默认为0.0。
* @param lon 经度,有效范围:-180.0到+180.0,+表示东经,默认为0.0。
* @param listener
*/
public void uploadUrlText( String status, String imageUrl, String lat, String lon,
RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("status", status);
params.add("url", imageUrl);
if (!TextUtils.isEmpty(lon)) {
params.add("long", lon);
}
if (!TextUtils.isEmpty(lat)) {
params.add("lat", lat);
}
request( SERVER_URL_PRIX + "/upload_url_text.json", params, HTTPMETHOD_POST, listener);
}
/**
* 获取微博官方表情的详细信息
*
* @param type 表情类别,face:普通表情、ani:魔法表情、cartoon:动漫表情,默认为face。
* @param language 语言类别,cnname:简体、twname:繁体,默认为cnname。
* @param listener
*/
public void emotions( EMOTION_TYPE type, LANGUAGE language, RequestListener listener) {
WeiboParameters params = new WeiboParameters();
params.add("type", type.name());
params.add("language", language.name());
request( API_SERVER + "/emotions.json", params, HTTPMETHOD_GET, listener);
}
}