package com.partynetwork.iparty.app.common;
import android.app.Activity;
import android.content.Context;
import com.partynetwork.dataprovider.util.T;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.AppException;
import com.partynetwork.iparty.app.util.StringUtils;
import com.renn.rennsdk.AccessToken;
import com.renn.rennsdk.RennClient;
import com.renn.rennsdk.RennParam;
import com.renn.rennsdk.RennResponse;
import com.renn.rennsdk.RennClient.LoginListener;
import com.renn.rennsdk.RennExecutor.CallBack;
import com.renn.rennsdk.exception.RennException;
import com.renn.rennsdk.param.GetLoginUserParam;
import com.renn.rennsdk.param.PutShareUrlParam;
import com.renn.rennsdk.param.PutStatusParam;
/**
* 人人帮助类
*/
public class RenRenHelper {
private static final String APP_ID = "244715";
private static final String API_KEY = "93ef6b97a8054696a6a36f3b56cd542f";
private static final String SECRET_KEY = "3d8a32a9360b450caba0f72560bf52eb";
public static final String SCOPE = "read_user_blog read_user_photo read_user_status read_user_album "
+ "read_user_comment read_user_share publish_blog publish_share "
+ "send_notification photo_upload status_update create_album "
+ "publish_comment publish_feed";
/** 访问微博服务接口的地址 */
protected static final String API_SERVER = "https://api.weibo.com/2";
/** POST 请求方式 */
protected static final String HTTPMETHOD_POST = "POST";
/** GET 请求方式 */
protected static final String HTTPMETHOD_GET = "GET";
/** HTTP 参数 */
protected static final String KEY_ACCESS_TOKEN = "access_token";
private static RennClient rennClient;
private static void init(Context context) {
rennClient = RennClient.getInstance(context);
rennClient.init(APP_ID, API_KEY, SECRET_KEY);
rennClient
.setScope("read_user_blog read_user_photo read_user_status read_user_album "
+ "read_user_comment read_user_share publish_blog publish_share "
+ "send_notification photo_upload status_update create_album "
+ "publish_comment publish_feed");
rennClient.setTokenType("bearer");
}
/**
* 是否授权
*
* @return
*/
public static boolean isAuth(Context context) {
// 获取当前已保存过的 Token
AccessToken mAccessToken = AccessTokenKeeper
.readRenRenAccessToken(context);
if (rennClient == null) {
init(context);
}
rennClient.setAccessToken(mAccessToken);
return rennClient.isLogin();
}
/**
* 认证
*
* @param listener
*/
public static void authorize(final Activity activity) {
if (rennClient == null) {
init(activity);
}
rennClient.setLoginListener(new LoginListener() {
@Override
public void onLoginSuccess() {
AccessToken token = rennClient.getAccessToken();
AccessTokenKeeper.writeRenRenAccessToken(activity, token);
T.showShort(activity, "授权成功");
AppContext appContext = (AppContext) activity
.getApplicationContext();
try {
appContext.bind("", token.accessToken, token.expiresIn, 1);
} catch (AppException e) {
e.makeToast(activity);
}
}
@Override
public void onLoginCanceled() {
T.showShort(activity, "取消授权");
}
});
rennClient.login(activity);
}
/**
* 退出登录
*
* @param context
* @param listener
*/
public static void logout(Context context) {
if (rennClient == null) {
init(context);
}
rennClient.logout();
}
/**
* 发布分享
*
* @param status
* @param imageUrl
* @param listener
*/
public static void shareMessage(final Activity context, String status,
String imageUrl) {
// 判断是否授权
if (StringUtils.isEmpty(status)) {
status += "你们觉得怎么样?";
}
AccessToken mAccessToken = AccessTokenKeeper
.readRenRenAccessToken(context);
if (rennClient == null) {
init(context);
}
rennClient.setAccessToken(mAccessToken);
if (isAuth(context)) {
RennParam param = null;
if (!StringUtils.isEmpty(imageUrl)) {
PutShareUrlParam putShareUrlParam = new PutShareUrlParam();
putShareUrlParam.setComment(status);
putShareUrlParam.setUrl(imageUrl);
param = putShareUrlParam;
} else {
PutStatusParam putStatusParam = new PutStatusParam();
putStatusParam.setContent(status);
param = putStatusParam;
}
try {
rennClient.getRennService().sendAsynRequest(param,
new CallBack() {
@Override
public void onSuccess(RennResponse response) {
T.showShort(context, "分享成功");
}
@Override
public void onFailed(String errorCode,
String errorMessage) {
T.showShort(context, errorMessage);
}
});
} catch (RennException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} else {
authorize(context);
}
}
/**
* 获取用户关注列表
*
* @param context
* @param listener
*/
public static void getFriends(final Context context) {
}
/**
* 显示自己的资料
*
* @param context
* @param listener
*/
public static void showMyInfo(final Context context) {
AccessToken mAccessToken = AccessTokenKeeper
.readRenRenAccessToken(context);
if (rennClient == null) {
init(context);
}
rennClient.setAccessToken(mAccessToken);
GetLoginUserParam param = new GetLoginUserParam();
try {
rennClient.getRennService().sendAsynRequest(param, new CallBack() {
@Override
public void onSuccess(RennResponse response) {
T.showShort(context, "获取成功");
}
@Override
public void onFailed(String errorCode, String errorMessage) {
T.showShort(context, "获取失败");
}
});
} catch (RennException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}