赞
踩
第一步:自建应用,请在“应用管理”–“创建应用”–“新建”,你就可以获得该应用的AgentId
企业微信官方文档地址
只需要关注AgentId即可,后期如获取到用户信息这些才应用到secret。
第二步:配置网页授权及JS-SDK、企业微信授权登录、企业可信IP
配置的域名(线上)
如你的域名为 “https://baidd.com”,则你应当配置为“baidd.com”。因为,企业微信配置回调域名并不接受“baidd.com/api”或其他不规范的类型,且你要配置的域名请确保已经校验通过。
配置的域名(线下)
你可以使用内网穿透工具,获取相对应的域名即可。如蜻蜓映射、花生壳,根据自己喜好来。如"http://dpd.bnat.com"。那么你需要配置为“dpd.bnat.com”
第三步:配置可信域名需完成域名归属认证(Linux正式环境)
将下面的txt文件上传到你的服务器上,使用nginx进行配置即可。重启nginx进行访问。
第四步:企业可信(Linux正式环境)
这个地方必须完成第三步,才能进行IP地址配置(服务器的ip地址),才能获取到相应的用户信息。要不然报错
最终效果图
我开发的目的是为了获取userid,界面美化根据自己的需求来就可以了。
1、企业微信 JS-SDK 提供了 npm 和 cdn 两种引入途径,详见引入企业微信JS—sdk
2.为什么拿不到回调?是因为你的redirect_uri配置的不对。该回调地址是指你项目接收他回调的页面地址。这里就根据你的实际情况配置http或者https,取决于你线上还是线下环境。一定不要忘记配置http或者https,结合图和代码看
//这是我实现代码的片段。主要是实现企业微信二维码的展示 const loginPanelRef = useRef(null); const wwLoginRef = useRef(null); useEffect(() => { // 异步创建Web登录组件实例 const createWWLogin = async () => { // 初始化 const wwLogin = ww.createWWLoginPanel({ el: "#ww_login", params: { login_type: "CorpApp", appid: " 你的企业CorpId", //测试环境 agentid: "你的应用agentId", redirect_uri: "http://2d123dpd.beesnat.com/performance/panel", state: "WWLogin", redirect_type: "callback", panel_size: "small", }, onCheckWeComLogin({ isWeComLogin }) { console.log("3333", isWeComLogin); }, onLoginSuccess(code) { //根据当前用户获取扫描用户的userId,与后端进行联动 updateInfo(code, updame); }, onLoginFail(err) { console.log("222222", err); }, }); // 存储Web登录组件实例引用 wwLoginRef.current = wwLogin; }; createWWLogin(); }, []);
根据不同的风格,可以选择不同的,我这里使用的是Feign Client 实现。
剩下的就是根据你自己的实际需求进行调试。然后,对返回值依据需求取值
` @FeignClient(name = "qyex", url = "https://qyapi.weixin.qq.com") public interface QywxCodeFeignService { /** * 企业微信获取access_token */ @RequestMapping(value = "/cgi-bin/gettoken", method = RequestMethod.GET) String getAccessToken(@RequestParam(name = "corpid") String corpid, @RequestParam(name = "corpsecret") String corpsecret); /** * 获取用户登录身份 */ @RequestMapping(value = "/cgi-bin/auth/getuserinfo", method = RequestMethod.GET) String getUserId(@RequestParam(name = "access_token") String access_token, @RequestParam(name = "code") String code); /** * 获取用户具体信息 */ @RequestMapping(value = "/cgi-bin/user/get", method = RequestMethod.GET) String getUserMessage(@RequestParam(name = "access_token") String access_token, @RequestParam(name = "userid") String userid); }
controller层进行相应的值进行取值
String resultUser=QywxCodeFeignService.getAccessToken(APPID,APPSERCT);
JsonObject jsonObjectUser = gson.fromJson(resultUser, JsonObject.class);
String userId = jsonObjectUser.get("userid").getAsString();
1、在本文中并未对"本地windows内网穿透然后校验文件"进行说明,因为我暂时还没有找到解决办法,找到方法后,进行更新。
2、react也是我半路接触的,所以有些专业术语可能存在表述不清晰。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。