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(); } } }