企业微信自建应用获取登录用户敏感信息,一键授权 (python篇,详细多图)

news2024/11/26 22:42:51

目录

收起

企业微信自建应用配置

自建应用

构造网页授权链接

请求用户信息

补充

ACCESS_TOKEN

企业微信自建应用配置

自建应用

  • 新建应用

企业微信管理后台——>应用管理,拉到最下方,创建应用

创建应用

  • 配置应用

在应用管理页面点击刚才创建刚才建好的应用打开它,拉到最下方

先配置可信域名,网页授权及JS-SDK,点击打开,然后配置上你的域名加端口。

这个地方配置的域名+端口号,需要验证,点击申请验证,会得到一个文件

其实就是当访问你的域名+端口号+文件名时能得到这个文件或者能得到这个文件中的字符串即可完成验证成功,此处我是用的django,直接给了接口能返回这个文件中的字符串。代码如下

上面为路由,当访问文件名接口时返回了文件中的字符串,也可以直接返回这个文件。

在可信域名配置完成后,打开企业可信IP,直接将你的服务器IP复制进去即可

构造网页授权链接

文档地址: [构造网页授权链接](构造网页授权链接 - 接口文档 - 企业微信开发者中心)

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

注意,大写字母的单词为你要替换的地方,说明:

  • CORPID:企业的CorpID,在管理后台顶部导航选择我的的企业,然后就能找到企业ID

  • REDIRECT_URI:授权后重定向的回调链接地址,请注意要使用urlencode对链接进行处理,比如我要跳转的是http://li-xun.work:8082/authorize, urlencode处理后就是 http%3A%2F%2Fli-xun.work%3A8082%2Fauthorize

  • scope:应用授权作用域。snsapi_base:静默授权,可获取成员的基础信息(UserId与DeviceId);snsapi_privateinfo:手动授权,可获取成员的详细信息,包含头像、二维码等敏感信息。

  • AGENTID:应用agentid,应用管理页点开创建的应用就能看到,snsapi_privateinfo时必填。

  • STATE:重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节

完整链接示例:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wwa5550c05b175d888&redirect_uri=http%3A%2F% 2Fli-xun.work%3A8082%2Fauthorize&response_type=code&scope=snsapi_privateinfo&state=123456&agentid=1000012#wechat_redirect

配置完成后,当请求来到服务器后,直接跳转到此授权链接(手动授权登录),显示如下。

请求用户信息

当授权完成后,服务器的authorize接口得到一个重定向新请求,为什么是authorize接口,因为构造网页授权链接中配置的授权后重定向的回调链接地址是 `http://li-xun.work:8082/authorize`

此请求中带有一个用于身份认证的code,使用code可以换取到登录人的信息,使用如下:

请求接口: https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
请求方式::GET

def get_user_info(CODE, ACCESS_TOKEN):
    """
    获取企业成员个人信息
    :param CODE: 企业成员CODE
    :param ACCESS_TOKEN: 企业ACCESS_TOKEN
    :return: 个人信息
    """
    url = 'https://qyapi.weixin.qq.com/cgi-bin/auth/getuserinfo?access_token=' + ACCESS_TOKEN + '&code=' + CODE
    res = requests.get(url)
    return res.json()

说明:

* code为上一步重定向携带的code。

* 其中ACCESS_TOKEN是调用企业微信API的凭证,如何获得请看[企业微信开发文档](获取access_token - 接口文档 - 企业微信开发者中心) , 正文也会补充说明。

此请求能得到的内容如下:

接着使用user_ticket去请求用户信息即可,使用如下:

请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=ACCESS_TOKEN
def get_user_detail(USER_TICKET, ACCESS_TOKEN):
    """
    获取企业成员详细信息
    :param USER_TICKET: 成员信息票据
    :param ACCESS_TOKEN: 企业ACCESS_TOKEN
    :return: 个人详细信息
    """
    url = "https://qyapi.weixin.qq.com/cgi-bin/auth/getuserdetail?access_token=" + ACCESS_TOKEN
    d = {
        "user_ticket": USER_TICKET
    }
    res = requests.post(url=url, data=json.dumps(d))
    return res.json()

得到的结果就是我们的最终结果,用户信息

补充

ACCESS_TOKEN

这是企业微信接口调用的凭证,不同的应用ACCESS_TOKEN不同,使用如下:

请求方式: GET(HTTPS)
请求地址:  https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET

  • ID:企业ID

  • SECRET:应用密钥

应用管理——>点开你创建的应用

点击查看后到企业微信上去查看

---

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

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

相关文章

jmeter 性能测试用 csv,这个坑有些扯蛋

⏩很多人在使用 jmeter 做接口测试、自动化测试和性能测试时,都喜欢用 CSV 数据文件设置功能,来读取准备好的测试数据。虽然这种方法并不是最优方案,在我们的性能测试课程中,讲解了更优的方案,但是,没有上过…

阿里云国际站:在阿里云上做开发,究竟是一种怎样的体验?

标题:在阿里云上做开发,究竟是一种怎样的体验?   "在阿里云上做开发,到底是一种什么样的体验?"这是一个我经常被问到的问题,今天我决定与大家深度探讨这个话题。我们知道,任何对用户体验的描述…

面向对象七大设计原则

更多Java知识学习 文章目录 前言一、单一职责原则定义:优点:怎么应用? 二、开闭原则定义优点怎么应用? 三、依赖倒置原则定义优点怎么应用? 四、接口隔离原则定义优点怎么应用? 五、里氏替换原则定义继承的…

对标推特,Threads横空出世,最新Threads账号注册和登录保姆级教程

Meta 正式在全球超过 100 个国家地区应用商店上线 Threads,一款和 Twitter 高度相似的社交软件,并将其定位为 Instagram 的文字对话应用。 Meta 试图以 Threads 吸引那些因马斯克决策而离开了 Twitter 的用户。 在Threads帖文中,扎克伯格向所…

从C语言到C++_24(二叉搜索树)概念+完整代码实现+笔试题

目录 1. 二叉搜索树(BinarySearchTree) 1.1 二叉搜索树的优势和劣势 二叉搜索树的时间复杂度:O(N) 1.2 二叉搜索树的改良 2. 二叉搜索树的实现 2.1 二叉搜索树的定义 2.2 二叉搜索树的插入 2.3 二叉搜索树的查找 2.4 二叉搜索树的删…

(汽车级)TMCS1101A3BQDRQ1、TMCS1101A3UQDRQ1隔离式霍尔效应电流传感器 6mA 8-SOIC

TMCS1101/TMCS1101-Q1精密隔离电流传感器是电隔离霍尔效应电流传感器&#xff0c;能够进行直流或交流电流测量&#xff0c;具有高精度、出色的线性度以及温度稳定性等特性。低漂移、温度补偿信号链在整个器件温度范围内具有<1.5%满量程误差。输入电流流经内部1.8mΩ导体&…

只需2行python代码,轻松将PDF转换成Word

1. pdf2docx功能 - 解析和创建页面布局- 页边距- 章节和分栏 (目前最多支持两栏布局)- 页眉和页脚 [TODO]- 解析和创建段落- OCR 文本 [TODO] - 水平&#xff08;从左到右&#xff09;或竖直&#xff08;自底向上&#xff09;方向文本- 字体样式例如字体、字号、粗/斜体、颜色…

什么是V2G充电技术?

据权威数据统计&#xff0c;截止2020年&#xff0c;我国纯电动汽车保有量已经达到400万辆。随着电动汽车保有量的快速增长&#xff0c;对电网会有一定的影响&#xff0c;电力容量需求增大&#xff0c;加剧用电峰谷差&#xff0c;对电网的冲击大&#xff0c;影响居民正常生活。这…

C#核心知识回顾——11.各数据集合的汇总区分、委托、事件

变量: 无符号 byte正8位 ushort正16位 uint正32位 ulong正64位 有符号 sbyte8位 short16位 int32位 long64位 浮点数 float double decimal 特殊 char bool string 复杂数据容器: 枚举enum 结构体struct 数组(一维、二维、交错) [] [,] [][] 类 数据集合&#xff1a;…

leetcode--杨辉三角(C、C++)

文章目录 1.C实现2.C实现 1.C实现 #include<stdio.h> #include<stdlib.h> #include<assert.h>int** generate(int n, int* rnum_row, int** rnum_row_ele) {//*rnum_row-->num_row&#xff1a;杨辉三角行数*rnum_row n;//*rnum_row_ele-->num_row_el…

深度学习笔记之Transformer(五) Position Embedding铺垫:Word2vec

深度学习笔记之Transformer——Position Embedding铺垫&#xff1a;Word2vec 引言回顾&#xff1a;关于词特征表示的 One-hot \text{One-hot} One-hot编码目标函数构建关于语料库与任务目标似然函数构建 Word2vec \text{Word2vec} Word2vec模型结构重点总结 引言 在Transforme…

Zabbix“专家坐诊”第198期问答汇总

问题一 Q&#xff1a;请问一下&#xff0c;自带的思科SNMP交换机模板&#xff0c;怎么不监控down的接口&#xff1f; A1&#xff1a;这种一般在自动发现规则里加个过滤器&#xff0c;过滤出IFSTATUS匹配(1|3)的就能实现只发现up的端口了。 A2&#xff1a; 在“Items”页面&a…

Unity | 从建模到蒙皮动画的整个过程

目录 一、顶点数组、索引数组及UV数组 二、Mesh、MeshFilter、MeshRenderer及SkinnedMeshRenderer 1. Mesh 2. MeshFilter 3. MeshRenderer 4. MeshRenderer与SkinnedMeshRenderer&#xff08;蒙皮网格&#xff09; 三、Unity中相关组件 1. mesh和material 2. sharedM…

【微信小程序创作之路】- 小程序项目组成(初创小程序)

【微信小程序创作之路】- 小程序项目组成&#xff08;初创小程序&#xff09; 提示&#xff1a;第二章 初创小程序&#xff0c;讲解小程序项目组成 文章目录 【微信小程序创作之路】- 小程序项目组成&#xff08;初创小程序&#xff09;前言一、下载安装小程序微信开发者工具二…

Python multiprocessing 多进程

在multiporcessing中&#xff0c;通过新建Process对象创建进程&#xff0c;然后用start()方法调用它。Process与threading.Thread类似。如下是一个简单的例子&#xff1a; from multiprocessing import Processdef f(name):print(hello ,name)if __name__ __main__:p Proces…

2D和3D双管齐下才是王道?KAUST联合Snap、VGG提出单张图像三维重建的Magic123框架

在最近的AIGC社区中&#xff0c;3D视觉生成领域越来越受到广泛的关注&#xff0c;以神经辐射场&#xff08;NeRFs&#xff09; 为基础的深度渲染网络向大家展示了非常惊艳的三维效果。可是&#xff0c;NeRFs需要大量的多视角图片作为监督&#xff0c;因而从单张2D图像进行3D重建…

昆仑万维的“天工”能否改变人工智能应用的格局?

在人工智能领域&#xff0c;昆仑万维公司近日引发了广泛关注&#xff0c;发布了名为“天工”的大语言模型。这一新的技术突破引发了人们对于人工智能应用格局是否会被改变的讨论。随着昆仑万维进军大型语言模型市场&#xff0c;人们开始思考&#xff0c;“天工”能否成为人工智…

面部表情动画数据捕捉利器——AH表情捕捉头盔

在游戏制作、电视广告、影视动画制作中&#xff0c;逐渐开始采用面部捕捉头盔进行采集表情面部数据。广州虚拟动力推出的AH表情捕捉头盔&#xff0c;能够轻松创建实时逼真的面部动画&#xff0c;搭配广州虚拟动力的动作捕捉系统VDMocap Studio Plus&#xff0c;能够自动运算出表…

第八章:怎样远程连接+远程连接常用工具+Teamviewer详解

目录 一、什么是远程连接 二、为什么需要远程连接 三、常用的远程连接工具 四、Teamviewer 一、什么是远程连接 远程连接就是在远程连接另外一台计算机。当某台计算机开启了远程桌面连接功能后我们就可以在网络的另一端控制这台计算机了&#xff0c;通过远程桌面功能我们可…

基于Java校园二手物品交易平台设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…