Android App实现微信第三方授权登陆

  1. 下载官方SDK

  在微信开放平台,下载微信的官方SDK,以及签名生成工具。

  地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN

Android App实现微信第三方授权登陆

  2.导入官方SDK

把Android开发工具包里面的libammsdk导入到你的项目中如下图:

 Android App实现微信第三方授权登陆

  这里要注意的是,应用签名不是在Eclispe 中查看,而是要用到我们第1步下载的签名生成工具。首先把签名生成工具安装在你的手机上,然后把你需要添加微信第三方登录功能的应用安装到你的手机上,最后按照签名工具的提示,在手机上生成应用的签名。

  如果这一步填的应用包名有错的话,将会导致你的应用无法调起微信。

  3.新建wxapi目录

  在你的项目的包名目录下新建一个wxapi目录,应用的包名可以在你的manifest文件里查看。注意,wxapi目录必须新建在你的包名目录下,否则微信返回的请求以及响应将会无法回调。

Android App实现微信第三方授权登陆

 

  4.新建WXEntryActivity类

  在上一步新建的目录下新建一个WXEntryActivity.java类,继承Activity,实现IWXAPIEventHandler接口,如下图

Android App实现微信第三方授权登陆

然后打开manifest,为这个类添加exported属性,设置为true:

Android App实现微信第三方授权登陆

  5.注册到微信

  在代码中,把你的应用注册到微信。这一步可以在你的APP的第一个Activity中进行,我就是在第一个Activity中的onCreate()方法中注册的。

/*
     * 注册到微信
     */
    private void regToWX(){
        api = WXAPIFactory.createWXAPI(this, APP_ID, true);//此处的APP_ID替换为你在微信开放平台上申请到的APP_ID
        api.registerApp(APP_ID);
        
    }

  6.调起微信

  注册完后,就可以调起微信了,通过以下几行简单的代码就可以调起微信了:

/*
 * 向微信发送授权登陆的请求
 */
	private void sendAuth(){
	    final SendAuth.Req req = new SendAuth.Req();
	    req.scope = "snsapi_userinfo";
	    req.state = "none";
	    api.sendReq(req);
	}

  这一步分的代码也是比较简单的,你可以选择在你的登录界面上,注册一个Button,点击Button,就执行上面的代码,发送授权登录请求,拉起微信了。

  7.获取token

  最后,在WXEntryActivity中,重写onResp方法,获取token。注意,新版的微信SDK中,已经code这个属性改名为token了。但是官方文档还没有改过来,我折腾了一个晚上才发现的。token就是官方教程上的code,只是名字不同了而已。获得token后,就可以利用token来获得access_token,进行后面的操作。

@Override
public void onResp(BaseResp resp) {
		switch(resp.errCode){
		case BaseResp.ErrCode.ERR_OK:
			SendAuth.Resp newResp = (SendAuth.Resp) resp;
			String token=newResp.token;
                        break;
                default:
                    break;
        }                

  再强调一遍token就是官方文档中的code,文档中的String code=newResp.code;已经不能再用了,因为code已经改名为token,所以应该要用String token=newResp.token

  进行到这一步,微信第三方授权基本上已经完成了,接下来只要利用token来获取access_token,按照官方文档获取想要的信息就可以了。如果还有不清楚地地方,欢迎留言,共同学习,如果有错误的地方,也欢迎大家提出来。

Android App实现微信第三方授权登陆

Android App实现微信第三方授权登陆

上一篇:微信签名算法的服务端实现(.net版本)


下一篇:iOS 微信分享 朋友圈(2016.3.17) - 王彬分享,越分享,越快乐