介绍
介绍
福哥今天给大家分享一下如何在微信企业号里实现用户网页授权(获取用户信息)功能,和微信公众号不一样的地方是,企业号是面向企业的,也就是说获取的用户信息其实就是微信企业号里的成员信息,说白了就是企业员工信息
教程
登录
登录微信企业号后台,进入应用过来 > 具体应用页面,我们仅使用网页授权及JS-SDK接口来完成获取用户信息功能
点击下面的“已启用”可以设置授权域名,只有授权的域名才可以用于回调URL
应用AgentID/Secret
每个应用都会有一个AgentID和Secret,这个对应微信公众号的AppID和AppSecret
企业ID
进入我的企业 > 企业信息页面,在最下面可以看到企业ID
开发网页授权
网页授权基于OAuth2认证模式,按照OAuth2认证模式对接即可
获取code
拼凑获取code的请求URL,重定向到这个请求URL
企业ID:微信企业号的企业ID
RedirectUri:回调URL,必须是基于网页授权域名的URL
https://open.weixin.qq.com/connect/oauth2/authorize?appid=[企业ID]&redirect_uri=URLEncode([RedirectUri])&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
通过微信服务器验证之后返回到指定回调URL,回调URL会携带code参数
Code:微信服务器分配的code参数
[RedirectUri]?code=[Code]&state=STATE
获取access_token
使用企业ID和应用Secret去换取access_token临时令牌
企业ID:微信企业号的企业ID
应用Secret:微信企业号应用的Secret
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=[企业ID]&corpsecret=[应用Secret]
返回的JSON数据里包括access_token,access_token就是临时令牌,微信企业号的access_token不能刷新的,失效了需要重新获取
{ "errcode":0, "errmsg":"ok", "access_token":"HSTj7Z_79rwzdkFJ-eI5SimoBA2X9a6H0SmQBAmxo2nmfM_nJNCyG46DrPSEb1donKzegXv9Ooe7AgQWwC1FAyx57NeMfw2d627U33TUYiWgBekqbCLtBd-T8xGF03Wn6a90qTNQCO5NHsHZ2eG9AmYoai45YwvibcV5mwQbe6_AtQam6R0-tPgsxW9EohRR-DYB6kAXubdFgfCzOXQhfA", "expires_in":7200 }
获取UserID
在前一步我们没有传入code参数,当然也就拿不到openid了,要拿用户的openid需要提供access_token和code两个信息
AccessToken:临时令牌
Code:微信服务器分配的code参数
https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=[AccessToken]&code=[Code]
返回的JSON数据包括OpenId和DeviceId,OpenId用于获取用户信息
注意:
如果授权用户是企业微信的成员则返回的JSON数据只有UserId,否则返回的JSON数据只有OpenId,也就是说UserId和OpenId只会出现其中一个。
微信企业号不能对OpenId直接获取信息,用户需要先关注企业号,成为企业号成员之后通过UserId才可以获取信息。
还有微信企业号通过UserId获取信息需要被操作UserId的用户在应用的可见范围之内才可以获取信息。
获取用户信息
拿到UserId和access_token后就可以获取授权我们的用户的信息了
AccessToken:临时令牌
UserID:用户ID(针对当前企业号的)
https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=[AccessToken]&userid=[UserID]
获得的信息如下
{ "errcode":0, "errmsg":"ok", "userid":"tongfunet", "name":"福哥", "department":[88], "position":"", "mobile":"139****8888", "gender":"1", "email":"tongfu@tongfu.net", "avatar":"http://wework.qpic.cn/wwhead/duc2TvpEgSQO4BpE0WZSZ8Dl243suofE1XXDpQtRJzyGmnVPaH9zgUAicevJZQGJgHvwhJRXPRyCxE/0", "status":1, "isleader":0, "extattr":{ "attrs":[ ] }, "english_name":"", "telephone":"", "enable":1, "hide_mobile":0, "order":[0], "external_profile":{ "external_attr":[], "external_corp_name":"" }, "main_department":88, "qr_code":"https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=vc4a4332f7e3557a1c", "alias":"", "is_leader_in_dept":[0], "address":"", "thumb_avatar":"http://wework.qpic.cn/wwhead/duc2TvpEgSQO4BpE0WCVC8Dl8iabeqE1XXDpQtRJzyGmnVPaH9tyUAicevJZQGJgHvwhJRXPRyCxE/100" }