虽然自己在日常工作中用不到第三方登录,但是它的重要性无可厚非。
废话不多说,接下来跟着步骤走,轻松集成第三方登陆。
一,在友盟注册应用
注册好友盟账户后,在http://www.umeng.com/social 中注册自己的应用 拿到友盟Appkey(记得先创建项目,在注册时package别弄错了...)
二,在腾讯开放平台中注册开发者信息,并注册应用
链接:http://open.qq.com/ 进入后点击移动应用 提交个人(公司)资料注册开发者信息(需要审核等待),通过后再创建移动应用(这里移动应用名称可以和AppName不一致)之后拿到应用的AppId和AppKey
三,开始集成
下载友盟SDK:http://dev.umeng.com/social/android/sdk-download 选择需要用到的平台以及导入方式 然后将Lib导入项目(也可以通过SDKIntegration.jar生成Lib)
接着在AndroidManifest.xml中注册如下信息:
//UMQQSsoHandler(Activity activity, String appId, String appKey)
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(ThirdPartyLandingActivity.this, "1104705065",
"7vK8SAM2TtHfeLVC");
qqSsoHandler.addToSocialSDK();
接着登录按钮点击事件 加入:
public void onClick(View v) {
mController = UMServiceFactory.getUMSocialService("com.umeng.login");
mController.doOauthVerify(ThirdPartyLandingActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
@Override
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(ThirdPartyLandingActivity.this, "授权开始", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(ThirdPartyLandingActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle value, SHARE_MEDIA platform) {
if (value != null && !TextUtils.isEmpty(value.getString("uid"))) {
Toast.makeText(ThirdPartyLandingActivity.this, "授权成功.", Toast.LENGTH_SHORT).show();
mController.getPlatformInfo(ThirdPartyLandingActivity.this, SHARE_MEDIA.QQ, new UMDataListener() {
@Override
public void onStart() {
Toast.makeText(ThirdPartyLandingActivity.this, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(int status, Map info) {
//status为登录状态,info为登录信息
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set keys = info.keySet();
for(String key : keys){
sb.append(key+"="+info.get(key).toString()+"\r\n");
}
Toast.makeText(ThirdPartyLandingActivity.this, "登陆信息: \n"+sb.toString(), Toast.LENGTH_LONG).show();
}else{
Log.d("TestData","发生错误:"+status);
}
}
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(ThirdPartyLandingActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
}
});
} else {
Toast.makeText(ThirdPartyLandingActivity.this, "授权失败", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(ThirdPartyLandingActivity.this, "授权取消", Toast.LENGTH_SHORT).show();
}
});
}
运行效果:http://wap.youshixiu.com/video/play/198338