/*
* 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 android.text.TextUtils;
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/8F1Egjs">账号接口</a>
*
* @author SINA
* @date 2014-03-03
*/
public class AccountAPI 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;
/** 学校首字母,默认为A。 */
public enum CAPITAL {
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
}
private static final String SERVER_URL_PRIX = API_SERVER + "/account";
public AccountAPI(Context context, String appKey, Oauth2AccessToken accessToken) {
super(context, appKey, accessToken);
}
/**
* 获取当前登录用户的隐私设置。
*
* @param listener 异步请求回调接口
*/
public void getPrivacy(RequestListener listener) {
requestAsync(SERVER_URL_PRIX + "/get_privacy.json", new WeiboParameters(mAppKey), HTTPMETHOD_GET, listener);
}
/**
* 获取所有的学校列表。
* NOTE:参数keyword与capital二者必选其一,且只能选其一 按首字母capital查询时,必须提供province参数
*
* @param province 省份范围,省份ID
* @param city 城市范围,城市ID
* @param area 区域范围,区ID
* @param schoolType 学校类型,可为以下几种: 1:大学,2:高中,3:中专技校,4:初中,5:小学
* <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 capital 学校首字母,默认为A
* @param keyword 学校名称关键字
* @param count 返回的记录条数,默认为10
* @param listener 异步请求回调接口
*/
public void schoolList(int province, int city, int area, int schoolType, CAPITAL capital, String keyword,
int count, RequestListener listener) {
WeiboParameters params = new WeiboParameters(mAppKey);
params.put("province", province);
params.put("city", city);
params.put("area", area);
params.put("type", schoolType);
if (!TextUtils.isEmpty(capital.name())) {
params.put("capital", capital.name());
} else if (!TextUtils.isEmpty(keyword)) {
params.put("keyword", keyword);
}
params.put("count", count);
requestAsync(SERVER_URL_PRIX + "/profile/school_list.json", params, HTTPMETHOD_GET, listener);
}
/**
* 获取当前登录用户的API访问频率限制情况。
*
* @param listener 异步请求回调接口
*/
public void rateLimitStatus(RequestListener listener) {
requestAsync(SERVER_URL_PRIX + "/rate_limit_status.json", new WeiboParameters(mAppKey), HTTPMETHOD_GET, listener);
}
/**
* OAuth授权之后,获取授权用户的UID。
*
* @param listener 异步请求回调接口
*/
public void getUid(RequestListener listener) {
requestAsync(SERVER_URL_PRIX + "/get_uid.json", new WeiboParameters(mAppKey), HTTPMETHOD_GET, listener);
}
/**
* 退出登录。
*
* @param listener 异步请求回调接口
*/
public void endSession(RequestListener listener) {
requestAsync(SERVER_URL_PRIX + "/end_session.json", new WeiboParameters(mAppKey), HTTPMETHOD_POST, listener);
}
}