package cn.bidaround.ytcore.qq;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import cn.bidaround.ytcore.data.YtPlatform;
import cn.bidaround.ytcore.login.AuthListener;
import cn.bidaround.ytcore.login.BaseAuth;
import com.tencent.connect.UserInfo;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import com.tencent.tauth.UiError;
/**
* QQ授权处理类
* @author youtui
* @since 2015/1/22
*/
public class QQAuth extends BaseAuth{
/** 腾讯授权qq类 */
private Tencent mTencent;
private String qqAuthResponse;
/**
* qq授权监听
*/
private IUiListener iuiListener;
/**
* 获取QQ用户信息监听
*/
private IUiListener getInfoListener;
public QQAuth(Activity activity, AuthListener listener){
super(activity, listener);
initQQ();
}
/**
* qq授权
*/
private void initQQ() {
mTencent = Tencent.createInstance(YtPlatform.PLATFORM_QQ.getAppId(), context);
mTencent.logout(context);
iuiListener = new IUiListener() {
@Override
public void onCancel() {
sendCancel();
}
@Override
public void onComplete(Object obj) {
UserInfo info = new UserInfo(context, mTencent.getQQToken());
getInfoListener = new IUiListener() {
@Override
public void onCancel() {
sendCancel();
}
@Override
public void onComplete(Object obj) {
JSONObject json = (JSONObject) obj;
userInfo.setQqOpenid(mTencent.getQQToken().getOpenId());
userInfo.setQqAuthResponse(qqAuthResponse);
try {
userInfo.setQqUserInfoResponse(json.toString());
userInfo.setQqNickName(json.getString("nickname"));
userInfo.setQqImageUrl(json.getString("figureurl_qq_1"));
userInfo.setQqGender(json.getString("gender"));
sendSuccess();
} catch (JSONException e) {
sendFail();
}
}
@Override
public void onError(UiError arg0) {
sendFail();
}
};
info.getUserInfo(getInfoListener);
}
@Override
public void onError(UiError arg0) {
sendFail();
}
};
mTencent.login((Activity) context, "all", iuiListener);
}
}