package com.tencent.weibo.oauthv2; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import com.tencent.weibo.beans.OAuth; import com.tencent.weibo.constants.OAuthConstants; /** * OAuth version 2 认证参数实体类 */ public class OAuthV2 extends OAuth implements Serializable{ private static final long serialVersionUID = -4667312552797390709L; private String redirectUri = "null";// 授权回调地址 private String clientId = "";// 申请应用时分配的app_key private String clientSecret="";//申请应用时分配到的app_secret private String responseType = "code";// code、token,默认为code private String type="default";//显示授权页的类型,默认授权页为pc授权页 private String authorizeCode= null;//用来换取accessToken的授权码 private String accessToken= null; private String expiresIn= null;//accessToken过期时间 private String grantType= "authorization_code";//填authorization_code, 或refresh_token private String refreshToken= null;//刷新token // private static Log log = LogFactory.getLog(OAuthV2.class);// 日志输出 public OAuthV2() { super(); this.oauthVersion=OAuthConstants.OAUTH_VERSION_2_A; } /** * @param redirectUri 认证成功后浏览器会被重定向到这个地址 */ public OAuthV2(String redirectUri) { super(); this.redirectUri = redirectUri; this.oauthVersion=OAuthConstants.OAUTH_VERSION_2_A; } /** * @param clientId 应用申请到的APP KEY * @param clientSecret 应用申请到的APP SECRET * @param redirectUri 认证成功后浏览器会被重定向到这个地址 */ public OAuthV2(String clientId, String clientSecret, String redirectUri) { super(); this.clientId = clientId; this.clientSecret = clientSecret; this.redirectUri = redirectUri; this.oauthVersion=OAuthConstants.OAUTH_VERSION_2_A; } /**Authorize code grant方式中,Authorization阶段需要的参数*/ public List<NameValuePair> getAuthorizationParamsList() { List<NameValuePair> paramsList = new ArrayList<NameValuePair>(); paramsList.add(new BasicNameValuePair("client_id",clientId)); paramsList.add(new BasicNameValuePair("response_type", responseType)); paramsList.add(new BasicNameValuePair("redirect_uri", redirectUri)); return paramsList; } /**Authorize code grant方式中,AccessToken阶段需要的参数*/ public List<NameValuePair> getAccessTokenByCodeParamsList() { List<NameValuePair> paramsList = new ArrayList<NameValuePair>(); paramsList.add(new BasicNameValuePair("client_id",clientId)); paramsList.add(new BasicNameValuePair("client_secret",clientSecret)); paramsList.add(new BasicNameValuePair("redirect_uri", redirectUri)); paramsList.add(new BasicNameValuePair("grant_type", "authorization_code")); paramsList.add(new BasicNameValuePair("code", authorizeCode)); return paramsList; } /** * 调用API时,需附带的OAuth鉴权信息 * @return */ public List<NameValuePair> getTokenParamsList() { List<NameValuePair> paramsList = new ArrayList<NameValuePair>(); paramsList.add(new BasicNameValuePair("oauth_consumer_key",clientId)); paramsList.add(new BasicNameValuePair("access_token",accessToken)); paramsList.add(new BasicNameValuePair("openid", openid)); paramsList.add(new BasicNameValuePair("clientip", clientIP)); paramsList.add(new BasicNameValuePair("oauth_version", oauthVersion)); paramsList.add(new BasicNameValuePair("scope", scope)); return paramsList; } /**重定向地址*/ public String getRedirectUri() { return redirectUri; } /**重定向地址*/ public void setRedirectUri(String redirectUri) { this.redirectUri = redirectUri; } /**应用的APP KEY*/ public String getClientId() { return clientId; } /**应用的APP KEY*/ public void setClientId(String clientId) { this.clientId = clientId; } /**授权类型*/ public String getResponeType() { return responseType; } /**应用申请到的APP SECRET*/ public String getClientSecret() { return clientSecret; } /**应用申请到的APP SECRET*/ public void setClientSecret(String clientSecret) { this.clientSecret = clientSecret; } /**授权类型*/ public void setResponseType(String responseType) { this.responseType = responseType; } /** 显示授权页的类型,默认授权页为pc授权页 */ public String getType() { return type; } /** 显示授权页的类型,默认授权页为pc授权页 */ public void setType(String type) { this.type = type; } /**授权码*/ public String getAuthorizeCode() { return authorizeCode; } /**授权码*/ public void setAuthorizeCode(String authorizeCode) { this.authorizeCode = authorizeCode; } public String getAccessToken() { return accessToken; } public void setAccessToken(String accessToken) { this.accessToken = accessToken; } /**accessToken过期时间*/ public String getExpiresIn() { return expiresIn; } /**accessToken过期时间*/ public void setExpiresIn(String expiresIn) { this.expiresIn = expiresIn; } /**确定请求的对象,authorization_code或refresh_token*/ public String getGrantType() { return grantType; } /**确定请求的对象,authorization_code或refresh_token*/ public void setGrantType(String grantType) { this.grantType = grantType; } /**刷新token*/ public String getRefreshToken() { return refreshToken; } /**刷新token*/ public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } }