小程序
小游戏
企业微信
微信支付
扫描小程序码分享
企业微信自建应用,自定义菜单,导航到自己的H5项目,怎么获取当前用户信息啊?
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,设置自定义菜单跳转url,在按钮中构造网页授权url就可以获取到自成员登入信息了
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
https://open.work.weixin.qq.com/api/doc/90000/90136/91799
let userinfo_json = await this.session(this.config("app_module") + '_userinfo'); /*获取用户信息*/ if (think.isEmpty(userinfo_json)) { /*没有缓存用户信息 重新拉取*/ let access_token = await this.qywx_access_token(); let tmp_userinfo_json = await axios("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=" + access_token + "&code=" + this.get("code")); if (tmp_userinfo_json.data.errcode != 0) { if (tmp_userinfo_json.data.errcode == "60011") { return this.redirect(think.config("err_nopermission")); } else if (tmp_userinfo_json.data.errcode == "40029") { let cnt = this.get("state"); if (cnt > 5) return this.fail('抱歉,尝试登录失败次数过多,请企业微信联系信息部检查账号!'); return this.redirect(this.create_login_url(cnt)); } else { return this.redirect(think.config("err_nologin")); } } if (tmp_userinfo_json.data.OpenId) { /*在微信中打开,以前关注过企业公众号,现在没有关注,返回值errcode是0,多了个OpenId字段,以此判断此人没有关注企业中公众号,跳到统一报错平台去*/ return this.redirect(think.config("err_nologin")); } let userinfo_json = await axios("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=" + access_token + "&userid=" + tmp_userinfo_json.data.UserId); userinfo_json = userinfo_json.data; if (userinfo_json.errcode != 0) { if (userinfo_json.errcode == "60011") { return this.redirect(think.config("err_nopermission")); } } /*顺便存储此人部门*/ let dept_json = await this.qywx_dept(userinfo_json.department[0]); if (think.isEmpty(dept_json.department)) { return this.redirect(think.config("err_nopermission")); } else { userinfo_json.department = dept_json.department[0].name; } await this.session(this.config("app_module") + '_userinfo', userinfo_json); return userinfo_json; } else { return userinfo_json; }
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
你好,设置自定义菜单跳转url,在按钮中构造网页授权url就可以获取到自成员登入信息了
https://open.work.weixin.qq.com/api/doc/90000/90136/91799
let userinfo_json = await this.session(this.config("app_module") + '_userinfo'); /*获取用户信息*/ if (think.isEmpty(userinfo_json)) { /*没有缓存用户信息 重新拉取*/ let access_token = await this.qywx_access_token(); let tmp_userinfo_json = await axios("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=" + access_token + "&code=" + this.get("code")); if (tmp_userinfo_json.data.errcode != 0) { if (tmp_userinfo_json.data.errcode == "60011") { return this.redirect(think.config("err_nopermission")); } else if (tmp_userinfo_json.data.errcode == "40029") { let cnt = this.get("state"); if (cnt > 5) return this.fail('抱歉,尝试登录失败次数过多,请企业微信联系信息部检查账号!'); return this.redirect(this.create_login_url(cnt)); } else { return this.redirect(think.config("err_nologin")); } } if (tmp_userinfo_json.data.OpenId) { /*在微信中打开,以前关注过企业公众号,现在没有关注,返回值errcode是0,多了个OpenId字段,以此判断此人没有关注企业中公众号,跳到统一报错平台去*/ return this.redirect(think.config("err_nologin")); } let userinfo_json = await axios("https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=" + access_token + "&userid=" + tmp_userinfo_json.data.UserId); userinfo_json = userinfo_json.data; if (userinfo_json.errcode != 0) { if (userinfo_json.errcode == "60011") { return this.redirect(think.config("err_nopermission")); } } /*顺便存储此人部门*/ let dept_json = await this.qywx_dept(userinfo_json.department[0]); if (think.isEmpty(dept_json.department)) { return this.redirect(think.config("err_nopermission")); } else { userinfo_json.department = dept_json.department[0].name; } await this.session(this.config("app_module") + '_userinfo', userinfo_json); return userinfo_json; } else { return userinfo_json; }