package com.mime.qweibo.examples; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import com.mime.qweibo.OauthKey; import com.mime.qweibo.QParameter; import com.mime.qweibo.QWeiboRequest; import com.mime.qweibo.examples.QWeiboType.PageFlag; import com.mime.qweibo.examples.QWeiboType.ResultType; public class QWeiboSyncApi { /** * Get request token. * * @param customKey * Your AppKey. * @param customSecret * Your AppSecret. * @return The request token. */ public String getRequestToken(String customKey, String customSecret) { String url = "https://open.t.qq.com/cgi-bin/request_token"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; //The OAuth Call back URL(You should encode this url if it //contains some unreserved characters). oauthKey.callbackUrl = MyWeiboSync.CALLBACK_URL; QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } /** * Get access token. * * @param customKey * Your AppKey. * @param customSecret * Your AppSecret * @param requestToken * The request token. * @param requestTokenSecret * The request token Secret * @param verify * The verification code. * @return */ public String getAccessToken(String customKey, String customSecret, String requestToken, String requestTokenSecrect, String verify) { String url = "https://open.t.qq.com/cgi-bin/access_token"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; oauthKey.verify = verify; QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } /** * Get home page messages. * * @param customKey * Your AppKey * @param customSecret * Your AppSecret * @param requestToken * The access token * @param requestTokenSecret * The access token secret * @param format * Response format, xml or json * @param pageFlag * Page number. * @param nReqNum * Number of messages you want. * @return Response messages based on the specified format. */ public String getHomeMsg(String customKey, String customSecret, String requestToken, String requestTokenSecrect, ResultType format, PageFlag pageFlag, int nReqNum) { String url = "http://open.t.qq.com/api/statuses/home_timeline"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("pageflag", String.valueOf(pageFlag .ordinal()))); parameters.add(new QParameter("reqnum", String.valueOf(nReqNum))); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } public String getWeiboDetail(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String id,ResultType format) { String url = "http://open.t.qq.com/api/t/show"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("id", id)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } public String getUserInfoByName(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String name,ResultType format) { String url = "http://open.t.qq.com/api/user/other_info"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("name", name)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //获取提及到我的微博列表 public String getRefers(String customKey, String customSecret,String requestToken, String requestTokenSecrect,PageFlag pageflag,int pagetime,int reqnum,int lastid,ResultType format) { String url = "http://open.t.qq.com/api/statuses/mentions_timeline"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("pageflag", String.valueOf(pageflag.ordinal()))); parameters.add(new QParameter("pagetime", String.valueOf(pagetime))); parameters.add(new QParameter("reqnum", String.valueOf(reqnum))); parameters.add(new QParameter("lastid", String.valueOf(lastid))); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //获取某用户广播列表 public String getTweets(String customKey, String customSecret,String requestToken, String requestTokenSecrect,PageFlag pageflag,int pagetime,int reqnum,int lastid,String name,ResultType format) { String url = "http://open.t.qq.com/api/statuses/user_timeline"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("pageflag", String.valueOf(pageflag.ordinal()))); parameters.add(new QParameter("pagetime", String.valueOf(pagetime))); parameters.add(new QParameter("reqnum", String.valueOf(reqnum))); parameters.add(new QParameter("lastid", String.valueOf(lastid))); parameters.add(new QParameter("name", name)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //获取粉丝列表 public String getFans(String customKey, String customSecret,String requestToken, String requestTokenSecrect,int reqnum,int startindex,String name,ResultType format) { String url = "http://open.t.qq.com/api/friends/user_fanslist"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("reqnum", String.valueOf(reqnum))); parameters.add(new QParameter("startindex", String.valueOf(startindex))); parameters.add(new QParameter("name", name)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //获取偶像列表 public String getIdols(String customKey, String customSecret,String requestToken, String requestTokenSecrect,int reqnum,int startindex,String name,ResultType format) { String url = "http://open.t.qq.com/api/friends/user_idollist"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("reqnum", String.valueOf(reqnum))); parameters.add(new QParameter("startindex", String.valueOf(startindex))); parameters.add(new QParameter("name", name)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //转播一条微博 public String reBroad(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String content,String reid,ResultType format) { String url = "http://open.t.qq.com/api/t/re_add"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); try { parameters.add(new QParameter("content",new String(content.getBytes("UTF-8")))); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } parameters.add(new QParameter("clientip", "127.0.0.1")); parameters.add(new QParameter("reid",reid)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "POST", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //对话,发私信 public String addPrivate(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String content,String name,ResultType format) { String url = "http://open.t.qq.com/api/private/add"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); try { parameters.add(new QParameter("content",new String(content.getBytes("UTF-8")))); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } parameters.add(new QParameter("clientip", "127.0.0.1")); parameters.add(new QParameter("name",name)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //点评一条微博 public String addComment(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String content,String reid,ResultType format) { String url = "http://open.t.qq.com/api/t/comment"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); try { parameters.add(new QParameter("content",new String(content.getBytes("UTF-8")))); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } parameters.add(new QParameter("clientip", "127.0.0.1")); parameters.add(new QParameter("reid", reid)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //删除一条微博 public String delete(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String id,ResultType format) { String url = "http://open.t.qq.com/api/t/del"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("id",id)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } //收藏一条微博 public String addFav(String customKey, String customSecret,String requestToken, String requestTokenSecrect,String id,ResultType format) { String url = "http://open.t.qq.com/api/fav/addt"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); parameters.add(new QParameter("id",id)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } /** * Publish a Weibo message. * * @param customKey * Your AppKey * @param customSecret * Your AppSecret * @param requestToken * The access token * @param requestTokenSecrect * The access token secret * @param content * The content of your message * @param pic * The files of your images. * @param format * Response format, xml or json(Default). * @return Result info based on the specified format. */ public String publishMsg(String customKey, String customSecret, String requestToken, String requestTokenSecrect, String content, String pic, ResultType format) { List<QParameter> files = new ArrayList<QParameter>(); String url = null; String httpMethod = "POST"; if (pic == null || pic.trim().equals("")) { url = "http://open.t.qq.com/api/t/add"; } else { url = "http://open.t.qq.com/api/t/add_pic"; files.add(new QParameter("pic", pic)); } OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; List<QParameter> parameters = new ArrayList<QParameter>(); String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); try { parameters.add(new QParameter("content", new String(content .getBytes("UTF-8")))); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); return ""; } parameters.add(new QParameter("clientip", "127.0.0.1")); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, httpMethod, oauthKey, parameters, files); } catch (Exception e) { e.printStackTrace(); } return res; } public String getUserInfo(String customKey, String customSecret,String requestToken, String requestTokenSecrect, ResultType format) { String url = "http://open.t.qq.com/api/user/info"; List<QParameter> parameters = new ArrayList<QParameter>(); OauthKey oauthKey = new OauthKey(); oauthKey.customKey = customKey; oauthKey.customSecrect = customSecret; oauthKey.tokenKey = requestToken; oauthKey.tokenSecrect = requestTokenSecrect; String strFormat = null; if (format == ResultType.ResultType_Xml) { strFormat = "xml"; } else if (format == ResultType.ResultType_Json) { strFormat = "json"; } else { return ""; } parameters.add(new QParameter("format", strFormat)); QWeiboRequest request = new QWeiboRequest(); String res = null; try { res = request.syncRequest(url, "GET", oauthKey, parameters, null); } catch (Exception e) { e.printStackTrace(); } return res; } }