package com.tencent.weibo.api;
import java.io.File;
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/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3">腾讯微博开放平台上微博相关的API文档<a>
*/
public class TAPI extends BasicAPI{
private String tShowUrl=apiBaseUrl+"/t/show";
private String tAddUrl=apiBaseUrl+"/t/add";
private String tAddPicUrl=apiBaseUrl+"/t/add_pic";
private String tAddPicUrlUrl=apiBaseUrl+"/t/add_pic_url";
private String tAddVideoUrl=apiBaseUrl+"/t/add_video";
private String tCommentUrl=apiBaseUrl+"/t/comment";
private String tDelUrl=apiBaseUrl+"/t/del";
private String tReAddUrl=apiBaseUrl+"/t/re_add";
private String tReCountUrl=apiBaseUrl+"/t/re_count";
private String tReListUrl=apiBaseUrl+"/t/re_list";
private String tReplyUrl=apiBaseUrl+"/t/reply";
/**
* 使用完毕后,请调用 shutdownConnection() 关闭自动生成的连接管理器
* @param OAuthVersion 根据OAuthVersion,配置通用请求参数
*/
public TAPI(String OAuthVersion) {
super(OAuthVersion);
}
/**
* @param OAuthVersion 根据OAuthVersion,配置通用请求参数
* @param qHttpClient 使用已有的连接管理器
*/
public TAPI(String OAuthVersion, QHttpClient qHttpClient) {
super(OAuthVersion, qHttpClient);
}
/**
* 获取一条微博数据
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param id 微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E8%8E%B7%E5%8F%96%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A%E6%95%B0%E6%8D%AE">腾讯微博开放平台上关于此条API的文档</a>
*/
public String show(OAuth oAuth, String format, String id) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("id", id));
return requestAPI.getResource(tShowUrl, paramsList, oAuth);
}
/**
* 发表一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%8F%91%E8%A1%A8%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String add(OAuth oAuth, String format, String content,
String clientip) throws Exception {
return this.add(oAuth, format, content, clientip, "", "", "");
}
/**
* 发表一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param jing 经度(可以填空)
* @param wei 纬度(可以填空)
* @param syncflag 微博同步到空间分享标记(可选,0-同步,1-不同步,默认为0)
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%8F%91%E8%A1%A8%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String add(OAuth oAuth, String format, String content,
String clientip, String jing, String wei, String syncflag) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("syncflag", syncflag));
return requestAPI.postContent(tAddUrl, paramsList, oAuth);
}
/**
* 删除一条微博数据
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param id 微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%88%A0%E9%99%A4%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String del(OAuth oAuth, String format, String id) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("id", id));
return requestAPI.postContent(tDelUrl, paramsList, oAuth);
}
/**
* 转播一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param reid 转播父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E8%BD%AC%E6%92%AD%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String reAdd(OAuth oAuth, String format, String content,
String clientip, String reid) throws Exception {
return this.reAdd(oAuth, format, content, clientip, "", "", reid);
}
/**
* 转播一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param jing 经度(可以填空)
* @param wei 纬度(可以填空)
* @param reid 转播父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E8%BD%AC%E6%92%AD%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String reAdd(OAuth oAuth, String format, String content,
String clientip, String jing, String wei, String reid)
throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("reid", reid));
return requestAPI.postContent(tReAddUrl, paramsList, oAuth);
}
/**
* 点评一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param reid 点评父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E7%82%B9%E8%AF%84%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String comment(OAuth oAuth, String format, String content,
String clientip, String reid) throws Exception {
return this.comment(oAuth, format, content, clientip, "", "", reid);
}
/**
* 点评一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param jing 经度(可以填空)
* @param wei 纬度(可以填空)
* @param reid 点评父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E7%82%B9%E8%AF%84%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String comment(OAuth oAuth, String format, String content,
String clientip, String jing, String wei, String reid)
throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("reid", reid));
return requestAPI.postContent(tCommentUrl, paramsList,
oAuth);
}
/**
* 回复一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param reid 回复的父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%9B%9E%E5%A4%8D%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A%EF%BC%88%E5%8D%B3%E5%AF%B9%E8%AF%9D%EF%BC%89">腾讯微博开放平台上关于此条API的文档</a>
*/
public String reply(OAuth oAuth, String format, String content,
String clientip, String reid) throws Exception {
return this.reply(oAuth, format, content, clientip, "", "", reid);
}
/**
* 回复一条微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param jing 经度(可以填空)
* @param wei 纬度(可以填空)
* @param reid 回复的父结点微博id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%9B%9E%E5%A4%8D%E4%B8%80%E6%9D%A1%E5%BE%AE%E5%8D%9A%EF%BC%88%E5%8D%B3%E5%AF%B9%E8%AF%9D%EF%BC%89">腾讯微博开放平台上关于此条API的文档</a>
*/
public String reply(OAuth oAuth, String format, String content,
String clientip, String jing, String wei, String reid)
throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("reid", reid));
return requestAPI.postContent(tReplyUrl, paramsList,
oAuth);
}
/**
* 发表一条带图片的微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param picpath 可以是本地图片路径 或 网络地址
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%8F%91%E8%A1%A8%E4%B8%80%E6%9D%A1%E5%B8%A6%E5%9B%BE%E7%89%87%E7%9A%84%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档1-本地图片</a>
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E7%94%A8%E5%9B%BE%E7%89%87URL%E5%8F%91%E8%A1%A8%E5%B8%A6%E5%9B%BE%E7%89%87%E7%9A%84%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档2-网络图片</a>
*/
public String addPic(OAuth oAuth, String format, String content,
String clientip, String picpath) throws Exception {
return this.addPic(oAuth, format, content, clientip, "", "", picpath, "");
}
/**
* 发表一条带图片的微博
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地)
* @param jing 经度(可以填空)
* @param wei 纬度(可以填空)
* @param picpath 可以是本地图片路径 或 网络地址
* @param syncflag 微博同步到空间分享标记(可选,0-同步,1-不同步,默认为0)
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%8F%91%E8%A1%A8%E4%B8%80%E6%9D%A1%E5%B8%A6%E5%9B%BE%E7%89%87%E7%9A%84%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档1-本地图片</a>
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E7%94%A8%E5%9B%BE%E7%89%87URL%E5%8F%91%E8%A1%A8%E5%B8%A6%E5%9B%BE%E7%89%87%E7%9A%84%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档2-网络图片</a>
*/
public String addPic(OAuth oAuth, String format, String content,
String clientip, String jing, String wei, String picpath,String syncflag)
throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("syncflag", syncflag));
if(new File(picpath).exists()){
//
QArrayList pic = new QArrayList();
pic.add(new BasicNameValuePair("pic", picpath));
return requestAPI.postFile(tAddPicUrl, paramsList, pic,
oAuth);
}else{
paramsList.add(new BasicNameValuePair("pic_url", picpath));
return requestAPI.postContent(tAddPicUrlUrl, paramsList, oAuth);
}
}
/**
* 获取微博当前已被转播次数
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param ids 微博ID列表,用“,”隔开
* @param flag 0-获取转发计数,1-获取点评计数 2-两者都获取
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E8%BD%AC%E6%92%AD%E6%95%B0%E6%88%96%E7%82%B9%E8%AF%84%E6%95%B0">腾讯微博开放平台上关于此条API的文档<a>
*/
public String reCount(OAuth oAuth, String format, String ids, String flag)
throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("ids", ids));
paramsList.add(new BasicNameValuePair("flag", flag));
return requestAPI.getResource(tReCountUrl, paramsList,
oAuth);
}
/**
* 获取单条微博的转播理由/点评列表
*
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param flag 标识。0-转播列表 1-点评列表 2-点评与转播列表
* @param rootid 转发或回复的微博根结点id(源微博id)
* @param pageflag 分页标识(0:第一页,1:向下翻页,2:向上翻页)
* @param pagetime 本页起始时间(第一页:填0,向上翻页:填上一次请求返回的第一条记录时间,向下翻页:填上一次请求返回的最后一条记录时间)
* @param reqnum 每次请求记录的条数(1-100条)
* @param twitterid 翻页用,第1-100条填0,继续向下翻页,填上一次请求返回的最后一条记录id
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E8%8E%B7%E5%8F%96%E5%8D%95%E6%9D%A1%E5%BE%AE%E5%8D%9A%E7%9A%84%E8%BD%AC%E5%8F%91%E6%88%96%E7%82%B9%E8%AF%84%E5%88%97%E8%A1%A8">腾讯微博开放平台上关于此条API的文档</a>
*/
public String reList(OAuth oAuth, String format, String flag,String rootid,
String pageflag, String pagetime, String reqnum,
String twitterid) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("flag", flag));
paramsList.add(new BasicNameValuePair("rootid", rootid));
paramsList.add(new BasicNameValuePair("pageflag", pageflag));
paramsList.add(new BasicNameValuePair("pagetime", pagetime));
paramsList.add(new BasicNameValuePair("reqnum", reqnum));
paramsList.add(new BasicNameValuePair("twitterid", twitterid));
return requestAPI.getResource(tReListUrl, paramsList,
oAuth);
}
/**
* 发表视频微博
* @param oAuth
* @param format 返回数据的格式 是(json或xml)
* @param content 微博内容
* @param clientip 用户IP(以分析用户所在地) 用户IP(必填)用户浏览器IP,
* @param jing 经度(可以填空) 经度(可以填空)
* @param wei 纬度(可以填空)
* @param url 视频地址,后台自动分析视频信息,支持youku,tudou,ku6
* @param syncflag 微博同步到空间分享标记(可选,0-同步,1-不同步,默认为0)
* @return
* @throws Exception
* @see <a href="http://wiki.open.t.qq.com/index.php/%E5%BE%AE%E5%8D%9A%E7%9B%B8%E5%85%B3/%E5%8F%91%E8%A1%A8%E8%A7%86%E9%A2%91%E5%BE%AE%E5%8D%9A">腾讯微博开放平台上关于此条API的文档</a>
*/
public String addVideo(
OAuth oAuth, String format, String content,
String clientip, String jing, String wei,String url,
String syncflag) throws Exception {
QArrayList paramsList = new QArrayList();
paramsList.add(new BasicNameValuePair("format", format));
paramsList.add(new BasicNameValuePair("content", content));
paramsList.add(new BasicNameValuePair("clientip", clientip));
paramsList.add(new BasicNameValuePair("jing", jing));
paramsList.add(new BasicNameValuePair("wei", wei));
paramsList.add(new BasicNameValuePair("url", url));
paramsList.add(new BasicNameValuePair("syncflag", syncflag));
return requestAPI.postContent(tAddVideoUrl, paramsList,
oAuth);
}
public void setAPIBaseUrl(String apiBaseUrl) {
this.apiBaseUrl=apiBaseUrl;
tShowUrl=apiBaseUrl+"/t/show";
tAddUrl=apiBaseUrl+"/t/add";
tAddPicUrl=apiBaseUrl+"/t/add_pic";
tAddPicUrlUrl=apiBaseUrl+"/t/add_pic_url";
tAddVideoUrl=apiBaseUrl+"/t/add_video";
tCommentUrl=apiBaseUrl+"/t/comment";
tDelUrl=apiBaseUrl+"/t/del";
tReAddUrl=apiBaseUrl+"/t/re_add";
tReCountUrl=apiBaseUrl+"/t/re_count";
tReListUrl=apiBaseUrl+"/t/re_list";
tReplyUrl=apiBaseUrl+"/t/reply";
}
}