Hello!欢迎各位新老朋友来看小弟博客,祝大家事业顺利,财源广进!!
主题:企业微信用户授权与校验完整对接流程
一:构造第三方应用授权链接
如果第三方应用需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取授权code
。
- 构造授权 URL:
登录网页版企业微信-应用管理-应用-你的应用
配置路径:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww/wx开头&redirect_uri=应用地址&response_type=code&scope=snsapi_base&state=sxkj#wechat_redirect
参数说明
配置可信域名
我这里已经配置,如果你未配置的话需要配置一下,点击配置可信域名需完成域名归属认证
,需要下载一个txt文件
,放在服务器应用根目录下:例如/usr/local/nginx/html
,最后配置一下nginx确保能访问txt文件
注意:如果调用接口的话需要配置一下白名单
- 用户同意授权:
scope = snsapi_base 静默不需要手动授权
scope = snsapi_privateinfo 需要手动授权
用户在企业微信中同意授权后,企业微信会重定向到你在 redirect_uri 中指定的地址,并附带一个 code 参数。
3. 获取 code 参数:
用户授权后,企业微信会将用户重定向回你的 redirect_uri
,并在 URL 中附加 code 参数。你需要从这个 URL 中提取 code。例如:
https://your-redirect-uri.com/callback?code=AUTHORIZATION_CODE
二:获取 access_token
官方API:https://developer.work.weixin.qq.com/document/path/91039
接口地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"access_token": "accesstoken000001",
"expires_in": 7200
}
三:使用 access_token 和 code 获取用户信息
你可以使用获取到的 access_token 和 code 来请求企业微信 API 来获取用户信息
官方API:https://developer.work.weixin.qq.com/document/path/91023
接口地址:https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"userid":"USERID",
"user_ticket": "USER_TICKET"
}
四:使用 userid 获取成员信息
最后,你可以使用获取到的userid 来请求企业微信 API 来获取用户详细信息
官方API:https://developer.work.weixin.qq.com/document/path/90196
接口地址:https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=USERID
返回结果:
{
"errcode": 0,
"errmsg": "ok",
"userid": "zhangsan",
"name": "张三",
"department": [1, 2],
"order": [1, 2],
"position": "后台工程师",
"mobile": "13800000000",
"gender": "1",
"email": "zhangsan@gzdev.com",
"biz_mail":"zhangsan@qyycs2.wecom.work",
"is_leader_in_dept": [1, 0],
"direct_leader":["lisi"],
"avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/0",
"thumb_avatar": "http://wx.qlogo.cn/mmopen/ajNVdqHZLLA3WJ6DSZUfiakYe37PKnQhBIeOQBO4czqrnZDS79FH5Wm5m4X69TBicnHFlhiafvDwklOpZeXYQQ2icg/100",
"telephone": "020-123456",
"alias": "jackzhang",
"address": "广州市海珠区新港中路",
"open_userid": "xxxxxx",
"main_department": 1,
"extattr": {
"attrs": [
{
"type": 0,
"name": "文本名称",
"text": {
"value": "文本"
}
},
{
"type": 1,
"name": "网页名称",
"web": {
"url": "http://www.test.com",
"title": "标题"
}
}
]
},
"status": 1,
"qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=xxx",
"external_position": "产品经理",
"external_profile": {
"external_corp_name": "企业简称",
"wechat_channels": {
"nickname": "视频号名称",
"status": 1
},
"external_attr": [{
"type": 0,
"name": "文本名称",
"text": {
"value": "文本"
}
},
{
"type": 1,
"name": "网页名称",
"web": {
"url": "http://www.test.com",
"title": "标题"
}
},
{
"type": 2,
"name": "测试app",
"miniprogram": {
"appid": "wx8bd80126147dFAKE",
"pagepath": "/index",
"title": "my miniprogram"
}
}
]
}
}
可惜上面的接口在2022年有改版,已经不能获取手机号等敏感信息,需要重新换接口,并且更改配置应用路径为: scope = snsapi_privateinfo 需要手动授权
,应用路径配置需要调整:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=yourApppid&redirect_uri=yourUrl&response_type=code&scope=snsapi_privateinfo&state=yourState&agentid=yourAgentid#wechat_redirect
其中:agentid
如下
然后调用新接口:
官方API:https://developer.work.weixin.qq.com/document/path/95833
接口地址:https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=ACCESS_TOKEN
好了,朋友们,以上是本期内容,喜欢的朋友们还请留下您的小赞赞,小弟会更加努力更新!!如果感兴趣的话,欢迎关注小弟公众号!!!🥳🥳🥳