大佬教程收集整理的这篇文章主要介绍了Android集成新浪微博第三方登录的方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了Android集成新浪微博第三方登录的方法。分享给大家供大家参考。具体实现方法如下:
1.下载微博的sdk ,导入微博的jar包两个 android-support-v4.jar和weibosdkcore.jar两个包
2.把新浪微博中的demo_src中SDK中的com,导入到项目中
3.用demo中的constants,主要是参数设置,将里面的参数改成自己的参数。
4.编写代码,主要步骤如下:
5.主要的核心代码如下:
@Override
public void onComplete(Bundle values) {
if (null == values) {
// 获取code失败
return;
}
String code = values.getString("code");
if (TextUtils.isEmpty(codE)) {
// 获取code失败
return;
}
// 获取code成功
mCode = code;
// 获取code成功,第二步:通过 Code 获取 Token
fetchTokenAsync(mCode,WEIBO_DEMO_APP_SECRET);
}
@Override
public void onCancel() {
Log.e("LoginActivity","sinaAuth cancel");
//如果取消授权,那么可以调到登录页面等
}
@Override
public void onWeiboException(WeiboException E) {
Log.e("LoginActivity","sinaAuth exception :" + e.getmessage());
}
}
/**
* 该 Handler 配合 {@link requestListener} 对应的回调来更新 UI。
*/
private Handler mHandler = new Handler() {
public void handlemessage(message msg) {
switch (msg.what) {
case MSG_FETCH_TOKEN_succesS:
// 显示 Token
// String date = new
// SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(
// new java.util.Date(mAccessToken.getExpiresTime()));
// String format =
// getString(R.String.weibosdk_demo_token_to_String_format_1);
// 获取tocken成功
break;
case MSG_FETCH_TOKEN_Failed:
// Toast.makeText(WBAuthCodeActivity.this,
// R.String.weibosdk_demo_toast_obtain_token_Failed,
// Toast.LENGTH_SHORT).show();
// 获取tocken失败
break;
default:
break;
}
};
};
/**
* 异步获取 Token。
*
* @param authCode
* 授权 Code,该 Code 是一次性的,只能被获取一次 Token
* @param appSecret
* 应用程序的 APP_SECRET,请务必妥善保管好自己的 APP_SECRET,
* 不要直接暴露在程序中,此处仅作为一个DEMO来演示。
*/
public void fetchTokenAsync(String authCode,String appSecret) {
/*
* LinkedHashMap<String,String> requestParams = new
* LinkedHashMap<String,String>();
* requestParams.put(WBConstants.AUTH_PARAMS_CLIENT_ID,
* Constants.APP_KEY);
* requestParams.put(WBConstants.AUTH_PARAMS_CLIENT_SECRET,
* appSecretConstants.APP_SECRET);
* requestParams.put(WBConstants.AUTH_PARAMS_GRANT_TYPE,
* "authorization_code");
* requestParams.put(WBConstants.AUTH_PARAMS_CODE,authCodE);
* requestParams.put(WBConstants.AUTH_PARAMS_REDIRECT_URL,
* Constants.REDIRECT_URL);
*/
WeiboParameters requestParams = new WeiboParameters();
requestParams.add(WBConstants.AUTH_PARAMS_CLIENT_ID,Constants.APP_KEY);
requestParams.add(WBConstants.AUTH_PARAMS_CLIENT_SECRET,appSecret);
requestParams.add(WBConstants.AUTH_PARAMS_GRANT_TYPE,
"authorization_code");
requestParams.add(WBConstants.AUTH_PARAMS_CODE,authCodE);
requestParams.add(WBConstants.AUTH_PARAMS_REDIRECT_URL,
Constants.REDIRECT_URL);
/**
* 请注意: {@link requestListener} 对应的回调是运行在后台线程中的, 因此,需要使用 Handler 来配合更新
* UI。
*/
AsyncWeiboRunner.request(OAUTH2_ACCESS_TOKEN_URL,requestParams,
"POST",new requestListener() {
@Override
public void onComplete(String responsE) {
LogUtil.d(tag,"get token Response: " + responsE);
Oauth2AccessToken token = Oauth2AccessToken
.parseAccessToken(responsE);
if (token != null && token.isSessionValid()) {
LogUtil.d(tag,"success! " + token.toString());
@H_176_0@mAccessToken = token;// 通知UI改变
mHandler.obtainmessage(MSG_FETCH_TOKEN_succesS)
.send@R_266_10586@rget();
@Override
public void onComplete4binary(
ByteArrayOutputStream responSEOS) {
LogUtil.e(tag,"onComplete4binary...");
mHandler.obtainmessage(MSG_FETCH_TOKEN_Failed)
.send@R_266_10586@rget();
}
@Override
public void onIOException(IOException E) {
LogUtil.e(tag,"onIOException: " + e.getmessage());
mHandler.obtainmessage(MSG_FETCH_TOKEN_Failed)
.send@R_266_10586@rget();
}
@Override
public void onError(WeiboException E) {
LogUtil.e(tag,"WeiboException: " + e.getmessage());
mHandler.obtainmessage(MSG_FETCH_TOKEN_Failed)
.send@R_266_10586@rget();
}
});
}
希望本文所述对大家的Android程序设计有所帮助。
以上是大佬教程为你收集整理的Android集成新浪微博第三方登录的方法全部内容,希望文章能够帮你解决Android集成新浪微博第三方登录的方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。