前言
class="Apple-tab-span" style="white-space:pre">	分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。 
 
声明	欢迎转载,但请保留文章原始出处:) 
		博客园:http://www.cnb
logs.com
		农民伯伯: http://over140.cnblogs.com 
 
正文
	一、准备
		注册、认证步骤自己来。微信开放平台:https://open.weixin.qq.com
 
	二、 代码
		2.1	唤起微信登录
			参考官网文档:资源中心/移动应用开放/接入指南/Android接入指南 
    private IWXAPI mWeixinAPI;    
private void loginWithWeixin() {        
if (mWeixinAPI == 
null) {
            mWeixinAPI = WXAPIFactory.createWXAPI(
this, WEIXIN_
APP_ID, 
false);
        }        
if (!mWeixinAPI.isWXAppInstalled()) {
            //提醒用户没有按照微信            
return;
        }
        mWeixinAPI.registerApp(WEIXIN_APP_ID);
        SendAuth.Req req = 
new SendAuth.Req();
        req.scope = WEIXIN_SCOPE;
        req.state = WEIXIN_STATE;
        mWeixinAPI.sendReq(req);
    }
			WEXIN_SCOPE	这里填的snsapi_userinfo,用snsapi_base提示没权限。
			WEIXIN_STATE	用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。
			不出意外就能唤起微信登录了。 
 
		2.2	接收微信的请求及返回值
			在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,参考文档在AndroidManifest.xml注册Activity。
public class WXEntryActivity 
extends Activity {
    @Override    
protected void onCreate(Bundle savedInstanceState) {        
super.onCreate(savedInstanceState);
        handle
Intent(getIntent());
    }
    @Override    
protected void onNewIntent(Intent intent) {        
super.onNewIntent(intent);
        handleIntent(intent);
    }    
private void handleIntent(Intent intent) {
        SendAuth.Resp resp = 
new SendAuth.Resp(intent.getExtras());        
if (resp.errCode == BaseResp.ErrCode.ERR_OK) {            
//用户同意
        }
    }
}
			注意,这里和微信的例子写的有点不一样,不过结果是一样的,这个能取到code等信息,测试返回数据如下:
        E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_state xxx
        E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        E/WXEntryActivity(14288): onCreate...key:_mmessage_appPackage com.tencent.mm
        E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_transaction 
null        E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_lang zh_CN
        E/WXEntryActivity(14288): onCreate...key:_wxapi_
command_type 1
        E/WXEntryActivity(14288): onCreate...key:_mmessage_content 
null        E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_country 
null        E/WXEntryActivity(14288): onCreate...key:_mmessage_checksum [B@426358e8
        E/WXEntryActivity(14288): onCreate...key:wx_token_key com.tencent.mm.openapi.token
        E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_url xxxxxxxxxxx
        E/WXEntryActivity(14288): onCreate...key:_mmessage_sdkVersion 570490883
        E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errcode 0
        E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errstr 
null        E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_openId 
null			xxx部分的内容我已经隐掉了,拿到code就能拿到access——token了,后续依据文档调用即可。
			这里你可以把WXEntryActivity的theme弄成透明的,然后再弹起来一个ProgressDialog进行后续的操作(提交你自己的服务器),就能和现有的界面完全融合了。
 
 
	三、注意:
		3.1	获取签名必须用release包。(所以你会发现微信、微博SDK取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)
 
结束
	纠结到底是微信登录还是QQ登录,,,,