各位朋友们分享一下企业微信静默授权获取用户信息的心得,有不对的地方还请大家指出。
步骤如下:
1.网页授权及JS-SDK可信域名配置;需要将“WW_verify_BJaQgWHfUyKpEU5L.txt”文件放入可信域名更目录下进行验证;验证成功后可继续下一步步骤。
2.生成回调网址;
若想要获取企业员工的身份信息,需构造如下的链接:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
参数说明:
参数 | 必填 | 说明 |
---|---|---|
appid | 是 | 企业的CorpID |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 ,注意域名需要设置为第三方应用的可信域名 |
response_type | 是 | 返回类型,此时固定为:code |
scope | 是 | 应用授权作用域。snsapi_base:静默授权,可获取成员的基础信息(UserId与DeviceId);snsapi_userinfo:静默授权,可获取成员的详细信息,但不包含手机、邮箱等敏感信息; |
state | 否 | 重定向url后会带上state参数,随便怎么写什么,不想写就不写(可以填写a-zA-Z0-9的参数值,长度不可超过128个字节) |
#wechat_redirect | 是 | 固定内容(微信终端使用此参数判断是否需要带上身份信息) |
例如我的url是https://www.baidu.com;注意:需要用urlencode进行转换转换后得:“https%3a%2f%2fwww.baidu.com”
我这边要填写的就是:https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxxx&redirect_uri=https%3a%2f%2fwww.baidu.com&response_type=code&scope=snsapi_base&state=1#wechat_redirect;即可。
企业员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE该链接最重要的是他返回了code值,这个code值时获取用户身份信息的关键。且这个code是以GET的方式进行获取的。
3.通过code获取员工信息(Https请求方式:GET)
https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
参数 | 必填 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
code | 是 | 通过成员授权获取到的code,每次成员授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期 |
返回结果显示:
a)企业成员授权时返回示例如下:
{
"UserId":"USERID",
"DeviceId":"DEVICEID"
}
得到UserId后即可利用UserId去进行通讯录访问;
6、通过userid获取员工信息
请求说明 :Https请求方式: GET
https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=USERID
参数 | 必填 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
userid | 是 | 成员UserID。对应管理端的帐号 |
返回结果:
返回结果
{
"errcode": 0,
"errmsg": "ok",
"userid": "zhangsan",
"name": "李四",
"department": [1, 2],
"position