企微获取用户敏感数据
1、企微配置可信域名
2、企微获取成员userID
3、企微获取用户敏感数据
文章目录
- 一、简介
- 1、企微数据安全更新
- 2、身份验证方式
- 2.1 网页授权登录(企微内部)
- 2.2 扫描授权登录(浏览器)
- 二、企微应用配置
- 1、企微配置可信域名
- 2、企微授权登录
- 3、企微可信IP
- 三、网页授权登录方式(企微)
- 1、构造网页登录链接
- 2、企微打开授权
- 3、获取访问用户身份
- 4、获取访问用户敏感信息
- 四、扫描授权登录(浏览器)
- 1、构造独立窗口登录二维码
- 2、扫码登录
- 3、获取访问用户身份
一、简介
1、企微数据安全更新
从2022年6月20号20点开始,除通讯录同步以外的基础应用(如客户联系、微信客服、会话存档、日程等),以及新创建的自建应用与代开发应用,调用该接口时,不再返回以下字段:头像、性别、手机、邮箱、企业邮箱、员工个人二维码、地址,应用需要通过oauth2手工授权的方式获取管理员与员工本人授权的字段。
2、身份验证方式
目前有2种身份验证方式:网页授权登录、扫码授权登录。
2.1 网页授权登录(企微内部)
官网地址
企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。
企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可通过OAuth2.0验证接口来获取成员的UserId身份信息。
企业微信OAuth2接入流程
调用流程为:
A) 用户访问第三方服务,第三方服务通过构造OAuth2链接(参数包括当前第三方服务的身份ID,以及重定向URI),将用户引导到认证服务器的授权页
B) 用户选择是否同意授权
C) 若用户同意授权,则认证服务器将用户重定向到第一步指定的重定向URI,同时附上一个授权码。
D) 第三方服务收到授权码,带上授权码来源的重定向URI,向认证服务器申请凭证。
E) 认证服务器检查授权码和重定向URI的有效性,通过后颁发AccessToken(调用凭证)
静默授权与手动授权
- 静默授权:用户点击链接后,页面直接302跳转至 redirect_uri?code=CODE&state=STATE
- 手动授权:用户点击链接后,会弹出一个中间页,让用户选择是否授权,用户确认授权后再302跳转至 redirect_uri?code=CODE&state=STATE
2.2 扫描授权登录(浏览器)
企业微信提供了OAuth的扫码登录授权方式,可以让企业的网站在浏览器内打开时,引导成员使用企业微信扫码登录授权,从而获取成员的身份信息,免去登录的环节。
二、企微应用配置
1、企微配置可信域名
参考另一篇
企微配置可信域名
https://blog.csdn.net/lydms/article/details/128885914
2、企微授权登录
3、企微可信IP
仅所配IP可通过接口获取企业数据。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QksAk0IP-1676134790625)(/Users/liyangda/Library/Application Support/typora-user-images/image-20230212005912032.png)]
三、网页授权登录方式(企微)
1、构造网页登录链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid={{CORPID}}&redirect_uri={{REDIRECT_URI}}&response_type={{code}}&scope={{snsapi_base}}&state={{STATE}}&agentid={{AGENTID}}#{{wechat_redirect}}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 企业的CorpID |
redirect_uri | 是 | 授权后重定向的回调链接地址,请使用urlencode对链接进行处理 |
response_type | 是 | 返回类型,此时固定为:code |
scope | 是 | 应用授权作用域。 snsapi_base:静默授权,可获取成员的基础信息(UserId与DeviceId); snsapi_privateinfo:手动授权,可获取成员的详细信息,包含头像、二维码等敏感信息。 |
state | 否 | 重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节 |
agentid | 是 | 应用agentid,建议填上该参数(如果为第三方应用或者代开发自建应用,未填该参数不会触发接口许可自动激活)。snsapi_privateinfo时必填否则报错; |
#wechat_redirect | 是 | 终端使用此参数判断是否需要带上身份信息 |
员工点击后,页面将跳转至 redirect_uri?code=CODE&state=STATE,企业可根据code参数获得员工的userid。code长度最大为512字节。
- 假定当前企业CorpID:
wxCorpId
- 访问链接:
http://api.3dept.com/cgi-bin/query?action=get
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxCorpId&redirect_uri=http%3a%2f%2fapi.3dept.com%2fcgi-bin%2fquery%3faction%3dget&response_type=code&scope=snsapi_base&state=#wechat_redirect
2、企微打开授权
在企微打开后,会进入登录授权页面,打开相应连接后:
授权成功后,重定向地址:
企业可根据code参数调用获取员工的信息
http://lydms.com/?code=ra8mSx5bH_mga5OqylDfvuiAoXuI8ixqPipUsBbd9iQ&state=date001
3、获取访问用户身份
**请求方式:**GET(HTTPS)
**请求地址:**https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token={{ACCESS_TOKEN}}&code={{CODE}}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
code | 是 | 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。 |
返回参数
{"userid": "lydms","errcode": 0,"errmsg": "ok","user_ticket": "PY_KcdqUjOPC6drzEjisMV3gRxEJayOwjbNlaZirW3r6tRQ6A2Lb3T-ibT07giuXmP7EIM6XwkbqPzzrl3dweqtx4HoLFMeql5qpDARv0bw","expires_in": 1800
}
参数 | 说明 |
---|---|
errcode | 返回码 |
errmsg | 对返回码的文本描述内容 |
userid | 成员UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员。如果是互联企业/企业互联/上下游,则返回的UserId格式如:CorpId/userid |
user_ticket | 成员票据,最大为512字节,有效期为1800s。 scope为snsapi_privateinfo,且用户在应用可见范围之内时返回此参数。 后续利用该参数可以获取用户信息或敏感信息,参见"获取访问用户敏感信息"。暂时不支持上下游或/企业互联场景 |
4、获取访问用户敏感信息
**请求方式:**POST(HTTPS)
**请求地址:**https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token={{ACCESS_TOKEN}}
{"user_ticket": "USER_TICKET"
}
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
user_ticket | 是 | 成员票据 |
返回参数:
{"errcode": 0,"errmsg": "ok","userid": "lydms","mobile": "15811000000","gender": "1","email": "lydms@lydms.com","avatar": "https://wework.qpic.cn/wwpic/250331_p99RzeaaZ_16760317/0","qr_code": "https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=vcf0b80b68e7a59","biz_mail": "lydms@lydms.com","address": ""
}
参数说明:
参数 | 说明 |
---|---|
errcode | 返回码 |
errmsg | 对返回码的文本描述内容 |
userid | 成员UserID |
gender | 性别。0表示未定义,1表示男性,2表示女性。仅在用户同意snsapi_privateinfo授权时返回真实值,否则返回0. |
avatar | 头像url。仅在用户同意snsapi_privateinfo授权时返回 |
qr_code | 员工个人二维码(扫描可添加为外部联系人),仅在用户同意snsapi_privateinfo授权时返回 |
mobile | 手机,仅在用户同意snsapi_privateinfo授权时返回,第三方应用不可获取 |
邮箱,仅在用户同意snsapi_privateinfo授权时返回,第三方应用不可获取 | |
biz_mail | 企业邮箱,仅在用户同意snsapi_privateinfo授权时返回,第三方应用不可获取 |
address | 仅在用户同意snsapi_privateinfo授权时返回,第三方应用不可获取 |
四、扫描授权登录(浏览器)
1、构造独立窗口登录二维码
https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=CORPID&agentid=AGENTID&redirect_uri=REDIRECT_URI&state=STATE
参数说明
参数 | 必须 | 说明 |
---|---|---|
appid | 是 | 企业微信的CorpID,在企业微信管理端查看 |
agentid | 是 | 授权方的网页应用ID,在具体的网页应用中查看 |
redirect_uri | 是 | 重定向地址,需要进行UrlEncode |
state | 否 | 用于保持请求和回调的状态,授权请求后原样带回给企业。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议企业带上该参数,可设置为简单的随机数加session进行校验 |
lang | 否 | 自定义语言,支持zh、en;lang为空则从Headers读取Accept-Language |
案例:
假定当前
企业CorpID:wxCorpId
开启授权登录的应用ID:1000000
登录跳转链接:http://api.3dept.com
state设置为:weblogin@gyoss9需要配置的授权回调域为:api.3dept.com根据URL规范,将上述参数分别进行UrlEncode,得到拼接的OAuth2链接为:
https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=wxCorpId&agentid=1000000&redirect_uri=http%3A%2F%2Fapi.3dept.com&state=web_login%40gyoss9
返回说明
用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数。
2、扫码登录
在浏览器输入一下地址后:
https://open.work.weixin.qq.com/wwopen/sso/qrConnect?appid=ww3e40cde07cca01&agentid=1000002&redirect_uri=https%3A%2F%2Fwww.lydms.com&state=web_login%40gyoss9
用户扫码登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3uQo3C0a-1676134790626)(/Users/liyangda/Library/Application Support/typora-user-images/image-20230212005120479.png)]
获取到重定向的地址
https://www.lydms.com/?code=Ta_E0rVc30IDRbmZ14mBnIDdmAOdsF-cJk4ZbNRWrgA&state=web_login@gyoss9&appid=ww3e40cde07cc21a01
3、获取访问用户身份
该接口用于根据code获取成员信息
**请求方式:**GET(HTTPS)
**请求地址:**https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
参数说明:
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
code | 是 | 通过成员授权获取到的code,最大为512字节。每次成员授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。 |
权限说明:
跳转的域名须完全匹配access_token对应应用的可信域名,否则会返回50001错误。
返回结果:
a) 当用户为企业成员时返回示例如下:
{"errcode": 0,"errmsg": "ok","userid":"lydms"
}
参数 | 说明 |
---|---|
errcode | 返回码 |
errmsg | 对返回码的文本描述内容 |
userid | 成员UserID。若需要获得用户详情信息,可调用通讯录接口:读取成员 |
企微获取用户敏感数据相关推荐
- 企微获取成员userID
1.企微配置可信域名 2.企微获取成员userID 3.企微获取用户敏感数据 文章目录 一.简介 二.获取token 1.获取秘钥 2.获取Token 三.获取部门数据 1.获取部门列表 2.获取子部 ...
- 企微提取用户unionid
前言 业务需求 需要根据提取企业微信所有员工所拥有客户 也就是提取unionid 特此写个一站式工具类 一次性生成 pom <!-- https://mvnrepository.com/arti ...
- 微信,企微静默登录授权
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- 企微衍生的地理位置那点事
前言 由于业务需要,企微PC端页面应用需要获取地理位置,然后发现并不支持,如下方官方回复,今天小编也顺便收集整理了一下浏览器获取地址位置的内容整理成文章. 既然不支持的话,我们使用浏览器的定位又是怎么 ...
- 银行企业如何通过企微scrm解决用户获取和转化难题?
传统银行企业营销获客的方式主要以线下网点.地推.电销等形式为主,这些营销获客方式存在引流成本高且转化率和精准度偏低等弊端.面对来自传统竞争对手和互联网金融机构的多重竞争,银行企业如果无法充分整合线上线 ...
- java调tapd-api获取Bug并发企微通知
需求 线上报障定时推送: 定时任务:每天上午9点半.下午5点半 基于企微机器人做推送 未处理线上报障 判断条件: [tapd]项目(workspace_id): 68331031 (用户产品部(C端) ...
- C# 开发企业内部微应用接入钉钉获取用户信息
一 首先从下面的网址中下载钉钉RC开发版,然后登录账户为开发者模式(需要系统管理员开通) https://open-doc.dingtalk.com/doc2/detail?spm=0.0.0.0.O ...
- 企微SCRM软件圈量营销玩法拆解,私域用户裂变推荐这2种
在企业私域"流量"及"留量"增长的过程中,企业微信已然成为了不可或缺的工具,2012年的公众号.2018年的抖音被错过了,那么我们就要好好珍惜如今的企微私域! ...
- 微擎mc.mod.php,微擎获取用户头像失败的问题如何处理
微信又改规则了! 近期因为腾讯改变了头像规则,造成一些老版本的微擎用户,出现获取粉丝头像获取错误.网上一些大神给出了1.0以上版本的解决办法如下: 根据官方最新的更新,可做如下修改. 针对版本微擎1. ...
最新文章
- 移动平均滤波_Kalman滤波理论与MATLAB实现引言
- 在DigitalOcean玩Kubernetes(K8S)
- maven的pom.xml文件
- 百度提前批算法工程师面筋!效率有、高
- RHCE-PXE无人值守装机一
- 整理UWP中网络和设备信息获取的帮助类,需要的拿走。
- 如何用Java构建json对象
- GRE阅读高频机经原文及答案之Design-Engineering
- 联邦学习FATE社区2021年度生态峰会倒计时1天,请查收这份参会攻略
- 实用好看的个人主页官方源码
- qq输入法自定义短语并在手机qq输入法使用
- Acwing动态规划1——背包问题
- 有一个女孩 名叫花木兰
- Integrated Electrical Test Vehicle Co-designed with Microfluidics for Evaluating the Performance of
- python实现jacknife交叉验证
- 期货交易品种基本面分析(期货品种技术面分析)
- php 图片处理慢,php图片处理
- 【组合数学】递推方程 ( 特解形式 | 特解求法 | 特解示例 )
- win10去掉快捷方式小箭头(win10桌面快捷方式小箭头怎么去掉)
- python做一副54扑克牌发牌技巧_最强大脑!杭四中高一男生邹全50秒轻松记住一副扑克牌...
热门文章
- 安装过程中报错:“需要HD Audio总线驱动程序”
- 仿韩国菜单as2.0有感
- AndroidStudio中 如何关闭 Install Run
- uniapp中使用弹出层
- 谷歌相册怎么下载照片_Google的实时相册可以自动分享您的最佳照片
- 为什么运营商大数据可以精准获客?
- Error:javaJDK isn‘t specified for module问题解决
- List的remove()方法详解
- 2022年上海DAMA-CDGA/CDGP数据治理认证招生简章
- JavaScript - 贷款计算器