Android集成新浪微博第三方登录的方法

Android集成新浪微博第三方登录的方法,第1张

概述本文实例讲述了Android集成新浪微博第三方登录的方法。分享给大家供大家参考。具体实现方法如下:

本文实例讲述了AndroID集成新浪微博第三方登录的方法。分享给大家供大家参考。具体实现方法如下:

1.下载微博的sdk ,导入微博的jar包两个 androID-support-v4.jar和weibosdkcore.jar两个包

2.把新浪微博中的demo_src中SDK中的com,导入到项目中

3.用demo中的constants,主要是参数设置,将里面的参数改成自己的参数。

4.编写代码,主要步骤如下:
复制代码 代码如下:// 初始化微博对象
mWeiboAuth = new WeiboAuth(this,Constants.APP_KEY,Constants.REDIRECT_URL,Constants.ScopE);
// sinaAuthorWebVIEw.loadUrl("https://open.weibo.cn/oauth2/authorize?scope=email&redirect_uri=http://www.sina.com&state=flashmemoAndroID&forcelogin=true&display=mobile&clIEnt_ID=2529326755");
//获取code
mWeiboAuth.authorize(new AuthListener(),WeiboAuth.OBTAIN_AUTH_CODE);
// 第二步:通过 Code 获取 Token
fetchTokenAsync(mCode,WEIBO_DEMO_APP_SECRET);

5.主要的核心代码如下:
复制代码 代码如下:/**
* 微博认证授权回调类。
*/
class AuthListener implements WeiboAuthListener {


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

mAccesstoken = token;
// 获取token成功,可以做出相应的处理

// 通知UI改变
mHandler.obtainMessage(MSG_FETCH_TOKEN_SUCCESS)
.sendToTarget();

@OverrIDe
public voID onComplete4binary(
ByteArrayOutputStream responSEOS) {
LogUtil.e(TAG,"onComplete4binary...");
mHandler.obtainMessage(MSG_FETCH_TOKEN_Failed)
.sendToTarget();
}

@OverrIDe
public voID onIOException(IOException e) {
LogUtil.e(TAG,"onIOException: " + e.getMessage());
mHandler.obtainMessage(MSG_FETCH_TOKEN_Failed)
.sendToTarget();
}

@OverrIDe
public voID onError(WeiboException e) {
LogUtil.e(TAG,"WeiboException: " + e.getMessage());
mHandler.obtainMessage(MSG_FETCH_TOKEN_Failed)
.sendToTarget();
}
});
}
主要是改写complete相应的方法即可。handler主要是通知界面做出改变
UI Handler的参数调用问题的参数
复制代码 代码如下:/** 获取 Token 成功或失败的消息 */
private static final int MSG_FETCH_TOKEN_SUCCESS = 1;
private static final int MSG_FETCH_TOKEN_Failed = 2;

希望本文所述对大家的AndroID程序设计有所帮助。

您可能感兴趣的文章:Android第三方登录之QQ登录Android第三方登录之腾讯QQ登录的实例代码Android实现第三方登录的上拉展开,下拉隐藏,下拉隐藏示例Android微信第三方登录(个人笔记)微信第三方登录Android实现代码Android 第三方登录、分享(ShareSDK、友盟)Android使用友盟集成QQ、微信、微博等第三方登录方法详解 总结

以上是内存溢出为你收集整理的Android集成新浪微博第三方登录的方法全部内容,希望文章能够帮你解决Android集成新浪微博第三方登录的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1142873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存