package com.tencent.weibo.beans; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import com.tencent.weibo.constants.OAuthConstants; /** * OAuth鉴权信息通用部分 */ public class OAuth implements Serializable{ private static final long serialVersionUID = -6939447877705891817L; protected String seqid=null; protected String clientIP="127.0.0.1"; protected String appFrom=null;//android应用应该设置为 android-sdk-1.0 protected String openid= null;//用户统一标识 protected String openkey= null; protected String oauthVersion = OAuthConstants.OAUTH_VERSION_1;// OAuth鉴权的版本 1.0 或 2.a protected String scope = "all"; // 授权范围 protected int status = 0;// 认证状态,0:成功,1:获取Request失败 2:获取授权码失败, 3:获取Access失败 protected String msg = null;//服务器返回的消息 protected Random random = new Random(); public List<NameValuePair> getCommonParamsList(){ seqid=this.generateSeqId(); List<NameValuePair> parameters = new ArrayList<NameValuePair>(); // parameters.add(new BasicNameValuePair("seqid", seqid)); parameters.add(new BasicNameValuePair("clientip",clientIP)); // parameters.add(new BasicNameValuePair("appfrom",appFrom)); // parameters.add(new BasicNameValuePair("openid", openid)); return parameters; } /** * 生成seqId,12位随机数 * @return */ public String generateSeqId(){ String result=""; for(int i=0;i<2;i++){ result=String.valueOf(random.nextInt(1000000))+result; for(;result.length()<(i+1)*6;result="0"+result); } return result; } /**请求码*/ public String getSeqId() { return seqid; } /**请求码,使用 {@link #generateSeqId()} 生成 */ public void setSeqId(String seqId) { this.seqid = seqId; } /**用户真实IP,需自行取得*/ public String getClientIP() { return clientIP; } /**请设置用户真实IP,避免使用内网IP,缺省值为"127.0.0.1" */ public void setClientIP(String clientIP) { this.clientIP = clientIP; } /**应用所使用的SDK版本*/ public String getAppFrom() { return appFrom; } /**应用所使用的SDK版本,请从 {@link com.tencent.weibo.constants.OAuthConstants#APP_FROM_ANDROID_SDK_1} 与 * {@link com.tencent.weibo.constants.OAuthConstants#APP_FROM_JAVA_SDK_2} 中选择 */ public void setAppFrom(String appFrom) { this.appFrom = appFrom; } /**用户登录态*/ public String getOpenid() { return openid; } /**该值在用户授权过程中取得,标记用户登录态*/ public void setOpenid(String openid) { this.openid = openid; } /**与openid对应的Key*/ public String getOpenkey() { return openkey; } /**该值在用户授权后取得,与openid对应*/ public void setOpenkey(String openkey) { this.openkey = openkey; } /**使用的OAuth授权的版本*/ public String getOauthVersion() { return oauthVersion; } /**请从 {@link com.tencent.weibo.constants.OAuthConstants#OAUTH_VERSION_1} 与 * {@link com.tencent.weibo.constants.OAuthConstants#OAUTH_VERSION_2_A} 中选择 */ public void setOauthVersion(String oauthVersion) { this.oauthVersion = oauthVersion; } /**授权范围 */ public String getScope() { return scope; } /**授权范围 */ public void setScope(String scope) { this.scope = scope; } /**认证状态:<br> * <li>0:成功, * <li>1:Request失败, * <li>2:获取验证码失败, * <li>3:Access失败 */ public int getStatus() { return status; } /**认证状态:<br> * <li>0:成功, * <li>1:Request失败, * <li>2:获取验证码失败, * <li>3:Access失败 */ public void setStatus(int status) { this.status = status; } /**服务器返回的消息*/ public String getMsg() { return msg; } /**服务器返回的消息*/ public void setMsg(String msg) { this.msg = msg; } }