http://u220434.s1.weizhan1.com/admin/login.html
通过指令回调接收来自企业微信 suite_ticket 的推送,并且主动获取了该第三方应用的 suite_access_token。在本节教程中,我们把第三方应用安装到测试企业的工作台,并进一步获取企业的***授权码。
通过本节教程,开发者将了解:
在开始本教程内容前,开发者需要做如下准备:
客户企业授权安装第三方应用有两种发起方式:
服务商网站的授权链接方式需要应用已经上线才可实施,本教程仅讲解如何测试应用市场安装的方式。
企业微信提供两种安装测试途径:
在【应用详情】页面,点击【安装测试】,确保指令回调 URL 和数据回调URL 均已通过验证。
在【安装测试】中点击【添加企业安装测试】。安装测试之前,请先确保当前测试已经加入测试企业列表中。
在【测试安装】确认页面,点击【确认】
使用测试企业的管理员企业微信,扫码【管理员授权】
确认【可见范围】、【授权应用权限】等安装信息
当【点击同意授权并添加】按钮后,企业微信服务器会已指令回调的形式,通知第三方应用后台企业已授权成功。授权成功回调指令的类型 InfoType 为 create_auth,额外附带了本次授权的临时授权信息。
// 读取对应的回调 typeconst info_type = callbackDataBody.InfoType;switch (info_type) {// 企业授权成功的回调case 'create_auth':console.log('AuthCode', callbackDataBody.AuthCode);// 临时授权码缓存起来Tool.SaveAuthCode(callbackDataBody.AuthCode);break;default:break;}res.send('success');第三方应用服务后台必须在 1000ms 内完成响应,以保证用户安装应用的体验。临时授权码10分钟后会失效,建议在接收到此事件时,先记录下 AuthCode,并立即回应企业微信,之后再做相关业务的处理。
关于企业授权相关的详细信息,请参考 企业授权应用;关于授权通知更多的内容,请参考 授权通知事件。
在获得临时授权码 auth_code 后,须要尽快换取成对应的企业***授权码。后续可以通过***授权码获取企业 access_token,进而调用企业微信相关API为授权企业提供服务。
获取***授权码需要 suite_access_token 和 auth_code,关于如何获得 suite_access_token 请参考 三:如何获取第三方应用凭证 内容。
// 从缓存中读取 suite_access_tokenlet suite_access_token = Tool.GetSuiteAccessToken(); // 从缓存中读取 临时授权码 auth_codelet auth_code = Tool.GetAuthCode(); const { data } = await axios.post(`https://qyapi.weixin.qq.com/cgi-bin/service/get_permanent_code?suite_access_token=${suite_access_token}`, {auth_code});const {permanent_code,auth_corp_info} = data;if(permanent_code){console.log('获取***授权码成功',permanent_code);// 将企业信息与对应的***授权码保存起来Tool.SavePermanentCode(auth_corp_info.corpid,permanent_code);return permanent_code;}else{console.error('获取***授权码失败',data);}关于获取***授权码接口的详细信息,请参考 获取***授权码。
到这里,我们已经完成了企业授权安装的测试,我们的第三方应用已经安装到了企业的工作台。通过授权通知获得了临时授权码,***通过调用接口得到了***授权码 permanent_code 信息,有了企业的***授权码,便可以进行企业接口的调用了。
在下节教程中,我们将了解当企业成员通过工作台入口打开了企业应用时,怎样通过网页授权获取登录用户基本信息。