其实也挺简单的,那为什么还写呢,还不是因为微信文档写的不清不楚。。
企业应用
。签名&包名
,设置完成后系统自动生成应用程序schema
。这里要注意了,本地签名和线上签名可能会不一样,从而导致 没有此权限 调不起来企业微信授权,所以建议debug模式也用正式签名。
app>build.gradle:
android {
...
signingConfigs {
release {
storeFile file("aaa")
storePassword "aaa"
keyAlias "aaa"
keyPassword "aaa"
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
...
}
以上aaa参数自行修改即可。
官方提供的是一个zip的压缩包,可以解压以module的方式导入。我是下载的Demo,然后在demo中拷的jar包,放在libs目录下并As a Library
。
即注册到企业微信,非常简单,就几行代码,注意参数别弄混了就行。
IWWAPI iwwapi;
private static final String APPID = "WW1e933be11645237c";
private static final String AGENTID = "1000012";
private static final String SCHEMA = "wwauth1e933be11645237c000012";
private void registerApp() {
iwwapi = WWAPIFactory.createWWAPI(this);
iwwapi.registerApp(SCHEMA);
}
registerApp()方法可以是在onCreate
中调用,也可以是别的地方,看自己需求。
private void wxLogin() {
final WWAuthMessage.Req req = new WWAuthMessage.Req();
req.sch = SCHEMA;
req.appId = APPID;
req.agentId = AGENTID;
req.state = "dd";
iwwapi.sendMessage(req, resp -> {
if (resp instanceof WWAuthMessage.Resp) {
WWAuthMessage.Resp rsp = (WWAuthMessage.Resp) resp;
if (rsp.errCode == WWAuthMessage.ERR_CANCEL) {
ToastUtil.showCenterToast("登录取消");
} else if (rsp.errCode == WWAuthMessage.ERR_FAIL) {
ToastUtil.showCenterToast("登录失败");
} else if (rsp.errCode == WWAuthMessage.ERR_OK) {
ToastUtil.showCenterToast("登录成功:" + rsp.code);
}
}
});
}
state 参数不是必传。 成功的情况下才可以拿到code。
到此就差不多了,把code
传给后台就可以了。
为什么这么说呢,因为文档说code
可以换取access_token
,然后code加access_token可以获取UserId
,而实际上根本没有获取access_token的方法,因为获取方法在服务端API
的菜单下,而且还不需要code参数,而是要Appid
和Secret
就行,亲测可以,这微信文档写的真是一言难尽。。一直以来也是受业界诟病多年。。
好了,既然移动端也可以拿到access_token,那就可以加上code直接拿到UserId,并传给后台。
当然,也可以在拿到code的时候就传给后台,剩下的让后台去获取也是一样的。
至于access_token为什么放在服务端API的菜单下,我略微翻看了下服务端的接口,大多都是只要access_token参数就行了,我想这也是为了方便吧,其次也是为了安全,主要还是文档写的不行。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有