/** * $id$ * Copyright 2011-2012 Renren Inc. All rights reserved. */ package com.renren.api.connect.android; import android.os.Bundle; import android.text.TextUtils; import com.renren.api.connect.android.common.RequestParam; import com.renren.api.connect.android.exception.RenrenException; /** * * @author hecao (he.cao@renren-inc.com) * 使用用户名密码登陆方式的请求对象。 * */ public class PasswordFlowRequestParam extends RequestParam { /** * 构造一个password flow请求对象 * * @param userName * 用户的用户名 若调用输入界面,则此参数可为空 * @param password * 用户的密码,明文 若调用输入界面,则此参数可为空 */ public PasswordFlowRequestParam (String userName, String password) { this.userName = userName; this.password = password; } /** * 构造一个password flow请求对象 * * @param userName * 用户的用户名 若调用输入界面,则此参数可为空 * @param password * 用户的密码,若调用输入界面,则此参数可为空 * @param permissions * 需要的权限 可选参数 */ public PasswordFlowRequestParam (String userName, String password, String[] permissions) { this.userName = userName; this.password = password; this.permissions = permissions; } /** * 应用的api key */ private String apiKey; /** * 应用的secret key */ private String secretKey; /** * 用户的用户名 */ private String userName; /** * 用户的密码,明文 */ private String password; /** * 请求的权限 */ private String[] permissions; public String getApiKey() { return apiKey; } public void setApiKey(String apiKey) { this.apiKey = apiKey; } public String getSecretKey() { return secretKey; } public void setSecretKey(String secretKey) { this.secretKey = secretKey; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String[] getPermissions() { return permissions; } public void setPermissions(String[] permissions) { this.permissions = permissions; } @Override public Bundle getParams() throws RenrenException { checkNullParams(apiKey, secretKey, userName, password); Bundle parameters = new Bundle(); parameters.putString("grant_type", "password"); parameters.putString("username", userName); parameters.putString("password", password); parameters.putString("client_id", apiKey); parameters.putString("client_secret", secretKey); if (permissions != null && permissions.length > 0) { String scope = TextUtils.join(" ", permissions); parameters.putString("scope", scope); } return parameters; } }