/* * Copyright (C) 2010-2013 The SINA WEIBO Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sina.weibo.sdk.openapi.legacy; import android.content.Context; import com.sina.weibo.sdk.auth.Oauth2AccessToken; import com.sina.weibo.sdk.net.RequestListener; import com.sina.weibo.sdk.net.WeiboParameters; import com.sina.weibo.sdk.openapi.AbsOpenAPI; /** * 该类封装了微博的搜索接口。 * 详情请参考<a href="http://t.cn/8F1nKH7">搜索接口</a> * * @author SINA * @date 2014-03-03 */ public class SearchAPI extends AbsOpenAPI { /** 学校类型,1:大学、2:高中、3:中专技校、4:初中、5:小学,默认为1。 */ public static final int SCHOOL_TYPE_COLLEGE = 1; public static final int SCHOOL_TYPE_SENIOR = 2; public static final int SCHOOL_TYPE_TECHNICAL = 3; public static final int SCHOOL_TYPE_JUNIOR = 4; public static final int SCHOOL_TYPE_PRIMARY = 5; /** 联想类型,0:关注、1:粉丝。 */ public static final int FRIEND_TYPE_ATTENTIONS = 0; public static final int FRIEND_TYPE_FELLOWS = 1; /** 联想范围,0:只联想关注人、1:只联想关注人的备注、2:全部,默认为2。 */ public static final int RANGE_ATTENTIONS = 0; public static final int RANGE_ATTENTION_TAGS = 1; public static final int RANGE_ALL = 2; public SearchAPI(Context context, String appKey, Oauth2AccessToken accessToken) { super(context, appKey, accessToken); } private static final String SERVER_URL_PRIX = API_SERVER + "/search"; /** * 搜索用户时的联想搜索建议。 * * @param q 搜索的关键字,必须做URLencoding * @param count 返回的记录条数,默认为10 * @param listener 异步请求回调接口 */ public void users(String q, int count, RequestListener listener) { WeiboParameters params = buildBaseParams(q, count); requestAsync(SERVER_URL_PRIX + "/suggestions/users.json", params, HTTPMETHOD_GET, listener); } /** * 搜索微博时的联想搜索建议。 * * @param q 搜索的关键字,必须做URLencoding。 * @param count 返回的记录条数,默认为10。 * @param listener 异步请求回调接口 */ public void statuses(String q, int count, RequestListener listener) { WeiboParameters params = buildBaseParams(q, count); requestAsync(SERVER_URL_PRIX + "/suggestions/statuses.json", params, HTTPMETHOD_GET, listener); } /** * 搜索学校时的联想搜索建议。 * * @param q 搜索的关键字,必须做URLencoding。 * @param count 返回的记录条数,默认为10。 * @param schoolType 学校类型,1:大学、2:高中、3:中专技校、4:初中、5:小学,默认为1。可为以下几种: * <li> {@link #SCHOOL_TYPE_COLLEGE} * <li> {@link #SCHOOL_TYPE_SENIOR} * <li> {@link #SCHOOL_TYPE_TECHNICAL} * <li> {@link #SCHOOL_TYPE_JUNIOR} * <li> {@link #SCHOOL_TYPE_PRIMARY} * @param listener 异步请求回调接口 */ public void schools(String q, int count, int schoolType, RequestListener listener) { WeiboParameters params = buildBaseParams(q, count); params.put("type", schoolType); requestAsync(SERVER_URL_PRIX + "/suggestions/schools.json", params, HTTPMETHOD_GET, listener); } /** * 搜索公司时的联想搜索建议。 * * @param q 搜索的关键字,必须做URLencoding * @param count 返回的记录条数,默认为10 * @param listener 异步请求回调接口 */ public void companies(String q, int count, RequestListener listener) { WeiboParameters params = buildBaseParams(q, count); requestAsync(SERVER_URL_PRIX + "/suggestions/companies.json", params, HTTPMETHOD_GET, listener); } /** * 搜索应用时的联想搜索建议。 * * @param q 搜索的关键字,必须做URLencoding * @param count 返回的记录条数,默认为10 * @param listener 异步请求回调接口 */ public void apps(String q, int count, RequestListener listener) { WeiboParameters params = buildBaseParams(q, count); requestAsync(SERVER_URL_PRIX + "/suggestions/apps.json", params, HTTPMETHOD_GET, listener); } /** * “@”用户时的联想建议。 * * @param q 搜索的关键字,必须做URLencoding * @param count 返回的记录条数,默认为10,粉丝最多1000,关注最多2000 * @param type 联想类型,0:关注、1:粉丝。可为以下几种: * <li> {@link #FRIEND_TYPE_ATTENTIONS} * <li> {@link #FRIEND_TYPE_FELLOWS} * @param range 联想范围,0:只联想关注人、1:只联想关注人的备注、2:全部,默认为2。 * <li> {@link #RANGE_ATTENTIONS} * <li> {@link #RANGE_ATTENTION_TAGS} * <li> {@link #RANGE_ALL} * @param listener 异步请求回调接口 */ public void atUsers(String q, int count, int type, int range, RequestListener listener) { WeiboParameters params = new WeiboParameters(mAppKey); params.put("q", q); params.put("count", count); params.put("type", type); params.put("range", range); requestAsync(SERVER_URL_PRIX + "/suggestions/at_users.json", params, HTTPMETHOD_GET, listener); } private WeiboParameters buildBaseParams(String q, int count) { WeiboParameters params = new WeiboParameters(mAppKey); params.put("q", q); params.put("count", count); return params; } }