全网最全:企业微信用户授权登录对接完整流程

Hello!欢迎各位新老朋友来看小弟博客,祝大家事业顺利,财源广进!!

主题:企业微信用户授权与校验完整对接流程

一:构造第三方应用授权链接
如果第三方应用需要在打开的网页里面携带用户的身份信息,第一步需要构造如下的链接来获取授权code

  1. 构造授权 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文件
在这里插入图片描述
在这里插入图片描述

注意:如果调用接口的话需要配置一下白名单

在这里插入图片描述

  1. 用户同意授权:
 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如下
在这里插入图片描述

第三步不变获取user_ticket之后用于新接口body入参,第四步然后调用新接口

官方API:https://developer.work.weixin.qq.com/document/path/95833
接口地址:https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=ACCESS_TOKEN

在这里插入图片描述
在这里插入图片描述

好了,朋友们,以上是本期内容,喜欢的朋友们还请留下您的小赞赞,小弟会更加努力更新!!如果感兴趣的话,欢迎关注小弟公众号[科技脉搏]!!!🥳🥳🥳

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值