试用友盟SDK实现Android第三方登录(以QQ登录为例)

   虽然自己在日常工作中用不到第三方登录,但是它的重要性无可厚非。

   废话不多说,接下来跟着步骤走,轻松集成第三方登陆。


一,在友盟注册应用

   注册好友盟账户后,在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中注册如下信息:

 


        
        
		   
		
        
            
                

                
                
                
                 
            
        
        
        


     
然后在Activity初始化时 加入:

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

    到了这里 基本大功告成 。最后别忘了在 AndroidManifest.xml加入网络访问等权限...

   
    
    
    
    
    
    
    
    

    
    
    
    
    
    
    
    


   运行效果:http://wap.youshixiu.com/video/play/198338




   

你可能感兴趣的:(学习笔记,Android)