package com.qq.open.qzone.fans;
import java.io.IOException;
import org.apache.log4j.Logger;
import com.qq.open.common.OpenQqConstants;
import com.qq.open.common.OpenQqUtils;
import com.qq.open.common.json.JSONException;
import com.qq.open.common.json.JSONObject;
import com.qq.open.qzone.bean.param.QqCheckPageFansParamBean;
import com.qq.open.qzone.bean.result.QqCheckPageFansResultBean;
/**
* 验证登录的用户是否为某个认证空间的粉丝
*
* @author HaoLiang
* @version 0.1.1
*/
public class QqCheckPageFans {
/** QQ互联工具类 */
private OpenQqUtils oqu = new OpenQqUtils();
/** 日志 */
private Logger log = Logger.getLogger(QqCheckPageFans.class);
/**
* 验证登录的用户是否为某个认证空间的粉丝
*
* @param paramBean 参数Bean
* @return 验证结果
* @throws IOException
* @throws JSONException
*/
public QqCheckPageFansResultBean checkPaeFans(QqCheckPageFansParamBean paramBean) throws IOException, JSONException {
// 日志
log.info("验证登录的用户是否为某个认证空间的粉丝 开始....");
// 获取验证粉丝的URL
String checkPageFansUrl = this.getCheckPageFansUrl(paramBean);
// 获取接口返回的内容
String jsonData = oqu.doGet(checkPageFansUrl);
// 认证空间的粉丝返回用
QqCheckPageFansResultBean resultBean = new QqCheckPageFansResultBean();
// JSON操作类
JSONObject jsonObj;
try {
// 获取接口返回的JSON数据
jsonObj = new JSONObject(jsonData);
if (jsonObj.getInt("ret") == 0) {
// 错误标识
resultBean.setErrorFlg(false);
// 认证空间标识
resultBean.setIsFans(jsonObj.getInt("isfans"));
} else {
// 错误标识
resultBean.setErrorFlg(true);
// 错误编号
resultBean.setErrorCode(jsonObj.get("ret").toString());
// 错误信息
resultBean.setErrorMes(jsonObj.getString("msg"));
}
} catch (JSONException e) {
e.printStackTrace();
// 日志
log.error("checkPaeFans 异常,json数据是:" + jsonData);
throw e;
}
// 日志
log.info("验证登录的用户是否为某个认证空间的粉丝 结束....");
return resultBean;
}
/**
* 获取验证粉丝的URL
*
* @param paramBean 参数Bean
* @return 验证粉丝URL
*/
private String getCheckPageFansUrl(QqCheckPageFansParamBean paramBean) {
StringBuilder checkFansUrl = new StringBuilder();
// 验证认证空间的粉丝接口的地址
checkFansUrl.append(OpenQqConstants.QQ_CHECK_PAGE_FANS_URL);
// AccessToken
checkFansUrl.append("?access_token=" + paramBean.getAccessToken());
// AppId
checkFansUrl.append("&oauth_consumer_key=" + oqu.getConfigValue("qq.appid"));
// Openid
checkFansUrl.append("&openid=" + paramBean.getOpenId());
// 表示认证空间的QQ号码。
checkFansUrl.append("&page_id=" + paramBean.getQzoneQq());
// 定义API返回的数据格式
checkFansUrl.append("&format=json");
return checkFansUrl.toString();
}
}