package com.weibo.sdk.android.api; 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#.E7.9F.AD.E9.93.BE">短链接接口</a> * @author xiaowei6@staff.sina.com.cn */ public class ShortUrlAPI extends WeiboAPI { public ShortUrlAPI(Oauth2AccessToken accessToken) { super(accessToken); } private static final String SERVER_URL_PRIX = API_SERVER + "/short_url"; /** * 将一个或多个长链接转换成短链接 * * @param url_long 需要转换的长链接,最多不超过20个。 * @param listener */ public void shorten( String[] url_long, RequestListener listener) { WeiboParameters params = new WeiboParameters(); if(url_long!=null){ int length=url_long.length; for (int i=0;i<length;i++) { params.add("url_long", url_long[i]); } } request( SERVER_URL_PRIX + "/shorten.json", params, HTTPMETHOD_GET, listener); } /** * 将一个或多个短链接还原成原始的长链接 * * @param url_short 需要还原的短链接,最多不超过20个 。 * @param listener */ public void expand( String[] url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); if(url_short!=null){ int length=url_short.length; for (int i=0;i<length;i++) { params.add("url_short", url_short[i]); } } request( SERVER_URL_PRIX + "/expand.json", params, HTTPMETHOD_GET, listener); } /** * 获取短链接的总点击数 * * @param url_short 需要取得点击数的短链接,最多不超过20个。 * @param listener */ public void clicks( String[] url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); if(url_short!=null){ int length=url_short.length; for (int i=0;i<length;i++) { params.add("url_short", url_short[i]); } } request( SERVER_URL_PRIX + "/clicks.json", params, HTTPMETHOD_GET, listener); } /** * 获取一个短链接点击的referer来源和数量 * * @param url_short 需要取得点击来源的短链接 * @param listener */ public void referers( String url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); params.add("url_short", url_short); request( SERVER_URL_PRIX + "/referers.json", params, HTTPMETHOD_GET, listener); } /** * 获取一个短链接点击的地区来源和数量 * * @param url_short 需要取得点击来源的短链接 * @param listener */ public void locations( String url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); params.add("url_short", url_short); request( SERVER_URL_PRIX + "/locations.json", params, HTTPMETHOD_GET, listener); } /** * 获取短链接在微博上的微博分享数 * * @param url_short 需要取得分享数的短链接,最多不超过20个。 * @param listener */ public void shareCounts( String[] url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); if(url_short!=null){ int length=url_short.length; for (int i=0;i<length;i++) { params.add("url_short", url_short[i]); } } request( SERVER_URL_PRIX + "/share/counts.json", params, HTTPMETHOD_GET, listener); } /** * 获取包含指定单个短链接的最新微博内容 * * @param url_short 需要取得关联微博内容的短链接 * @param since_id 若指定此参数,则返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。 * @param max_id 若指定此参数,则返回ID小于或等于max_id的微博,默认为0。 * @param count 单页返回的记录条数,默认为50,最多不超过200。 * @param page 返回结果的页码,默认为1。 * @param listener */ public void shareStatuses( String url_short, long since_id, long max_id, int count, int page, RequestListener listener) { WeiboParameters params = new WeiboParameters(); params.add("url_short", url_short); params.add("since_id", since_id); params.add("max_id", max_id); params.add("count", count); params.add("page", page); request( SERVER_URL_PRIX + "/share/statuses.json", params, HTTPMETHOD_GET, listener); } /** * 获取短链接在微博上的微博评论数 * * @param url_short 需要取得分享数的短链接,最多不超过20个。 * @param listener */ public void commentCounts( String[] url_short, RequestListener listener) { WeiboParameters params = new WeiboParameters(); if(url_short!=null){ int length=url_short.length; for (int i=0;i<length;i++) { params.add("url_short", url_short[i]); } } request( SERVER_URL_PRIX + "/comment/counts.json", params, HTTPMETHOD_GET, listener); } /** * 获取包含指定单个短链接的最新微博评论 * * @param url_short 需要取得关联微博评论内容的短链接 * @param since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0。 * @param max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0。 * @param count 单页返回的记录条数,默认为50,最多不超过200。 * @param page 返回结果的页码,默认为1。 * @param listener */ public void comments( String url_short, long since_id, long max_id, int count, int page, RequestListener listener) { WeiboParameters params = new WeiboParameters(); params.add("url_short", url_short); params.add("since_id", since_id); params.add("max_id", max_id); params.add("count", count); params.add("page", page); request( SERVER_URL_PRIX + "/comment/comments.json", params, HTTPMETHOD_GET, listener); } }