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/%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上时间线相关的API文档<a> */ public class StatusesAPI extends BasicAPI { private String statusesHomeTimelineUrl=apiBaseUrl+"/statuses/home_timeline"; private String statusesUSERTimelineUrl=apiBaseUrl+"/statuses/user_timeline"; private String statusesMentionsTimelineUrl=apiBaseUrl+"/statuses/mentions_timeline"; private String statusesBroadcastTimelineUrl=apiBaseUrl+"/statuses/broadcast_timeline"; private String statusesUserTimelineIdsUrl=apiBaseUrl+"/statuses/user_timeline_ids"; private String statusesUsersTimelineUrl=apiBaseUrl+"/statuses/users_timeline"; /** * 使用完毕后,请调用 shutdownConnection() 关闭自动生成的连接管理器 * @param OAuthVersion 根据OAuthVersion,配置通用请求参数 */ public StatusesAPI(String OAuthVersion) { super(OAuthVersion); } /** * @param OAuthVersion 根据OAuthVersion,配置通用请求参数 * @param qHttpClient 使用已有的连接管理器 */ public StatusesAPI(String OAuthVersion, QHttpClient qHttpClient) { super(OAuthVersion, qHttpClient); } /** * 主页时间线 * * @param oAuth * @param format 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-70条) * @param type 拉取类型 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 <br> * 如需拉取多个类型请使用|,如(0x1|0x2)得到3,此时type=3即可,填零表示拉取所有类型 * @param contenttype 内容过滤。0-表示所有类型,1-带文本,2-带链接,4-带图片,8-带视频,0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E4%B8%BB%E9%A1%B5%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上关于此条API的文档</a> */ public String homeTimeline(OAuth oAuth, String format, String pageflag, String pagetime, String reqnum,String type, String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource(statusesHomeTimelineUrl, paramsList, oAuth); } /** * 其他用户发表时间线 * * @param oAuth * @param format 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-70条) * @param lastid 用于翻页,和pagetime配合使用(第一页:填0,向上翻页:填上一次请求返回的第一条记录id,向下翻页:填上一次请求返回的最后一条记录id) * @param name 你需要读取的用户的用户名 * @param fopenid 你需要读取的用户的openid(可选) <br> * name和fopenid至少选一个,若同时存在则以name值为主 * @param type 拉取类型 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 <br> * 如需拉取多个类型请使用|,如(0x1|0x2)得到3,此时type=3即可,填零表示拉取所有类型 * @param contenttype 内容过滤。0-表示所有类型,1-带文本,2-带链接,4-带图片,8-带视频,0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E5%8F%91%E8%A1%A8%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上关于此条API的文档</a> */ public String userTimeline(OAuth oAuth, String format, String pageflag, String pagetime, String reqnum, String lastid, String name, String fopenid, String type, String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("lastid", lastid)); paramsList.add(new BasicNameValuePair("name", name)); paramsList.add(new BasicNameValuePair("fopenid", fopenid)); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource(statusesUSERTimelineUrl, paramsList, oAuth); } /** * 用户提及时间线 * * @param oAuth * @param format 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-100条) * @param lastid 和pagetime配合使用(第一页:填0,向上翻页:填上一次请求返回的第一条记录id,向下翻页:填上一次请求返回的最后一条记录id) * @param type 拉取类型 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 <br> * 如需拉取多个类型请使用|,如(0x1|0x2)得到3,此时type=3即可,填零表示拉取所有类型 * @param contenttype 内容过滤。0-表示所有类型,1-带文本,2-带链接,4-带图片,8-带视频,0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E7%94%A8%E6%88%B7%E6%8F%90%E5%8F%8A%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上关于此条API的文档</a> */ public String mentionsTimeline(OAuth oAuth, String format, String pageflag, String pagetime, String reqnum, String lastid, String type, String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("lastid", lastid)); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource( statusesMentionsTimelineUrl, paramsList, oAuth); } /** * 我发表时间线 * @param oAuth * @param format 返回数据的格式 是(json或xml) 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-200条) * @param lastid 和pagetime配合使用(第一页:填0,向上翻页:填上一次请求返回的第一条记录id,向下翻页:填上一次请求返回的最后一条记录id) * @param type 拉取类型, 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 如需拉取多个类型请|上(0x1|0x2) 得到3,type=3即可,填零表示拉取所有类型 * @param contenttype 内容过滤 填零表示所有类型 1-带文本 2-带链接 4图片 8-带视频 0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E6%88%91%E5%8F%91%E8%A1%A8%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上关于此条API的文档</a> */ public String broadcastTimeline(OAuth oAuth, String format, String pageflag, String pagetime, String reqnum, String lastid, String type,String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("lastid", lastid)); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource( statusesBroadcastTimelineUrl, paramsList, oAuth); } /** * 其他用户发表时间线索引 * @param oAuth * @param format 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-300条) * @param lastid 和pagetime配合使用(第一页:填0,向上翻页:填上一次请求返回的第一条记录id,向下翻页:填上一次请求返回的最后一条记录id) * @param name 你需要读取的用户的用户名(可选) * @param fopenid 你需要读取的用户的openid(可选) * name和fopenid至少选一个,若同时存在则以name值为主 * @param type 拉取类型, 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 拉取类型, 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 如需拉取多个类型请|上(0x1|0x2) 得到3,type=3即可,填零表示拉取所有类型 * @param contenttype 内容过滤 填零表示所有类型 1-带文本 2-带链接 4图片 8-带视频 0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E5%8F%91%E8%A1%A8%E6%97%B6%E9%97%B4%E7%BA%BF%E7%B4%A2%E5%BC%95">腾讯微博开放平台上关于此条API的文档</a> */ public String userTimelineIds(OAuth oAuth, String format, String pageflag ,String pagetime,String reqnum,String lastid, String name,String fopenid,String type,String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("lastid", lastid)); paramsList.add(new BasicNameValuePair("name", name)); paramsList.add(new BasicNameValuePair("fopenid", fopenid )); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource( statusesUserTimelineIdsUrl, paramsList, oAuth); } /** * 多用户发表时间线 * @param oAuth * @param format 返回数据的格式 是(json或xml) * @param pageflag 分页标识(0:第一页,1:向下翻页,2向上翻页) * @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间) * @param reqnum 每次请求记录的条数(1-100条) * @param lastid 第一页 时填0,继续向下翻页,填上一次请求返回的最后一条记录ID,翻页用 * @param names 你需要读取用户列表用“,”隔开,例如:abc,bcde,effg(可选,最多30个) * @param fopenids 你需要读取的用户openid列表,用下划线“_”隔开,例如:B624064BA065E01CB73F835017FE96FA_B624064BA065E01CB73F835017FE96FB(可选,最多30个) <br> * names和fopenids至少选一个,若同时存在则以names值为主 * @param type 拉取类型, 0x1 原创发表 0x2 转载 0x8 回复 0x10 空回 0x20 提及 0x40 点评 * @param contenttype 内容过滤 填零表示所有类型 1-带文本 2-带链接 4图片 8-带视频 0x10-带音频 * @return * @throws Exception * @see <a href="http://wiki.open.t.qq.com/index.php/%E6%97%B6%E9%97%B4%E7%BA%BF/%E5%A4%9A%E7%94%A8%E6%88%B7%E5%8F%91%E8%A1%A8%E6%97%B6%E9%97%B4%E7%BA%BF">腾讯微博开放平台上关于此条API的文档</a> */ public String usersTimeline(OAuth oAuth, String format,String pageflag, String pagetime,String reqnum,String lastid,String names, String fopenids, String type,String contenttype) throws Exception { QArrayList paramsList = new QArrayList(); paramsList.add(new BasicNameValuePair("format", format)); paramsList.add(new BasicNameValuePair("pagetime", pagetime)); paramsList.add(new BasicNameValuePair("pageflag", pageflag)); paramsList.add(new BasicNameValuePair("reqnum", reqnum)); paramsList.add(new BasicNameValuePair("lastid", lastid)); paramsList.add(new BasicNameValuePair("names", names)); paramsList.add(new BasicNameValuePair("fopenids", fopenids)); paramsList.add(new BasicNameValuePair("type", type)); paramsList.add(new BasicNameValuePair("contenttype", contenttype)); return requestAPI.getResource( statusesUsersTimelineUrl, paramsList, oAuth); } public void setAPIBaseUrl(String apiBaseUrl) { this.apiBaseUrl=apiBaseUrl; statusesHomeTimelineUrl=apiBaseUrl+"/statuses/home_timeline"; statusesUSERTimelineUrl=apiBaseUrl+"/statuses/user_timeline"; statusesMentionsTimelineUrl=apiBaseUrl+"/statuses/mentions_timeline"; statusesBroadcastTimelineUrl=apiBaseUrl+"/statuses/broadcast_timeline"; statusesUserTimelineIdsUrl=apiBaseUrl+"/statuses/user_timeline_ids"; statusesUsersTimelineUrl=apiBaseUrl+"/statuses/users_timeline"; } }