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

news2024/11/13 14:47:17

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如下
在这里插入图片描述

然后调用新接口:

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

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

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

欢迎加入"科技脉搏"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2150787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吸尘器制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

吸尘器制造行业,作为传统制造业的重要组成部分,也在积极探索如何通过先进技术实现生产模式的创新升级。5G智能工厂与物联数字孪生平台的融合应用,为吸尘器制造业的数字化转型铺设了一条高速通道,不仅极大地提升生产效率&#xff0…

华为---代理ARP简介及示例配置

目录 1. 概念 2. 前提条件 3. 使用环境 4. 工作过程 5. 优点 6. 缺点 7. 示例配置 7.1 示例场景 7.2基本配置 7.3 配置端口隔离 7.4 开启代理ARP 7.4.1 VLAN内代理ARP 7.4.2 VLAN间代理ARP 7.4.3路由式ARP代理 1. 概念 代理ARP(Proxy ARP)&…

GAMES202 作业1

参考:games202作业1 SM 首先是利用shadow map去生成尝试生成硬阴影。根据作业的要求 我们完成光源对物体的mvp矩阵 CalcLightMVP(translate, scale) {let lightMVP mat4.create();let modelMatrix mat4.create();let viewMatrix mat4.create();let projection…

Bigemap GIS Office 2024注册机 全能版地图下载软件

对于需要利用GIS信息进行编辑、设计的用户来说,Bigemap GIS Office占有重要地位。用户可以使用Bigemap GIS Office作为工具进行设计、分析、共享、管理和发布地理信息。Bigemap GIS Office能实现多种数据流转、嵌入、融合以及更多地为用户提供数据的增强处理及多种分…

文心一言 VS 讯飞星火 VS chatgpt (351)-- 算法导论24.1 2题

二、证明推论24.3。推论 24.3 的内容是设 G ( V , E ) G(V,E) G(V,E)是一带权重的源结点为 s s s的有向图,其权重函数为 ω : E → R ω:\boldsymbol{E→R} ω:E→R。假定图 G G G不包含从源结点 s s s可以到达的权重为负值的环路,则对于所有结点 v ∈ …

完美转发、C++11中与线程相关的std::ref

目录 模板中的万能引用 std::forward实现完美转发 C11中与线程相关的std::ref 线程函数参数 用函数指针作为线程函数 用lambda表达式作为线程函数 模板中的万能引用 void Func(int& x) {cout << "左值引用" << endl; } void Func(int&&am…

spark之不同序列化对比

一&#xff0c;spark的rdd的序列话不同介绍 下面是使用不同序列化后的占用资源和数据大小 2&#xff0c;sparksql中序列化的区别 sparksql中使用序列化和不使用差别不大&#xff0c;英文sparksql中默认使用了encode自己实现的序列化方法&#xff0c;加上与不加序列化差别不大…

基于PHP+MySQL组合开发的在线客服源码系统 聊天记录实时保存 带完整的安装代码包以及搭建部署教程

系统概述 随着互联网技术的飞速发展&#xff0c;企业与客户之间的沟通方式日益多样化&#xff0c;在线客服系统作为连接企业与客户的桥梁&#xff0c;其重要性不言而喻。然而&#xff0c;市场上现有的在线客服系统往往存在成本高、定制性差、维护复杂等问题。针对这些痛点&…

Zabbix 6.4添加中文语言

/usr/share/zabbix/include/locales .inc .phplocale -agrep “zh_CN" yum install langpacks-zh_CN.noarch y y y

【千帆AppBuilder】零代码+组件+代码节点方式实现AI应用《法定退休年龄计算器》

欢迎来到《小5讲堂》 这是《千帆》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 背景创建应用基本信息角色指令引导信息 组件整体界面开始节点代码节…

大腾智能3D协同平台通过华为云云软件认证

在数字化浪潮的推动下&#xff0c;工业软件不仅是研发和生产的核心工具&#xff0c;更是创新突破的基础&#xff0c;正成为推动工业领域数字化转型的关键力量。 近日&#xff0c;深圳市大腾信息技术有限公司凭借在技术创新与产品优化方面的卓越表现&#xff0c;再次迎来里程碑…

望繁信科技受邀出席ACS2023,为汽车行业数智化护航添翼

2023年5月25-26日&#xff0c;ACS2023第七届中国汽车数字科技峰会在上海成功举行。此次峰会汇聚了众多汽车领域的顶级专家、产业链代表及企业高管&#xff0c;共同探讨当今汽车产业的转型与未来发展趋势。 作为唯一受邀的流程挖掘厂商代表&#xff0c;望繁信科技携最新行业优势…

对于C++继承中子类与父类对象同时定义其析构顺序的探究

思考这样一串代码的运行结果&#xff1a; #include <iostream> using namespace std; class Person { public:~Person() { cout << "~Person()" << endl; } }; class Student:public Person { public:~Student() { cout << "~Student(…

【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略

文章目录 C类与对象前言读者须知RVO 与 NRVO 的启用条件如何确认优化是否启用&#xff1f; 1. 按值传递与拷贝省略1.1 按值传递的概念1.2 示例代码1.3 按值传递的性能影响1.3.1 完全不优化 1.4 不同编译器下的优化表现1.4.1 Visual Studio 2019普通优化1.4.2 Visual Studio 202…

828华为云征文|基于华为云Flexus X实例快速搭建Halo博客平台

目录 前言 一、Flexus云服务器X介绍 1.1 Flexus云服务器X实例简介 1.2 Flexus云服务器X实例特点 1.3 Flexus云服务器X实例场景需求 二、Flexus云服务器X购买 2.1 Flexus X实例购买 2.2 购买MySQL加速镜像 2.3 重置密码 2.4 登录服务器 三、Flexus X实例安装Docker 3.1 系统版本…

小小扑克牌算法

1.定义一个扑克牌类Card&#xff1a; package democard; public class Card {public String suit;//表示花色public int rank;//表示牌点数Overridepublic String toString() {return "{"suit rank"}";}//实例方法&#xff0c;初始化牌的点数和花色public…

IBM 撤出背后:国内技术人如何突围?

近年来&#xff0c;随着全球科技行业的风起云涌&#xff0c;各大科技巨头不断调整业务布局&#xff0c;甚至撤出某些市场。近日&#xff0c;IBM宣布在中国市场进一步收缩&#xff0c;引起了业界的广泛关注。作为曾经的科技领军企业&#xff0c;IBM的撤退背后到底传递出什么样的…

Fipexide(FPX):植物组织培养中的新兴化学诱导剂AbMole

在植物科学领域&#xff0c;组织培养技术一直是探索植物发育机制和生物技术应用的强大工具。然而&#xff0c;尽管植物生长调节剂如生长素&#xff08;Auxin&#xff09;和细胞分裂素&#xff08;Cytokinin&#xff09;在促进植物愈伤组织形成和再分化中发挥了关键作用&#xf…

Vue 依赖注入组件通信:provide / inject 使用详解

引言 在 Vue.js 中&#xff0c;我们经常会遇到组件之间需要共享数据的情况。一种常见的解决方案是通过 props 和 $emit 事件来进行数据传递&#xff0c;但对于多层嵌套的组件结构或共享状态的场景&#xff0c;这种方式显得繁琐而不直观。 幸运的是&#xff0c;Vue.js 提供了一…

powerbi -L10-文件夹内的文件名

powerbi -L10-文件夹内的文件名 Folder.Contents letSource Folder.Contents("\\your_folder\ your_folder "),#"Removed Other Columns" Table.SelectColumns(Source,{"Name", "Date modified", "Folder Path"}), in#&q…