企业微信API对接文档【可向微信用户发消息】

news2024/12/24 20:01:59

目录

企业微信API对接文档

1.背景

2.获取微信第三方token

3.安装docker环境

4.打包与启动

4.1打包镜像

4.2启动容器(启动应用)

5.企业微信二维码验证

5.1 获取初始二维码

5.2 第1次二维码验证

5.3 第2次二维码验证

6. 企业微信三个接口

6.1 获取所有用户

6.2 发送消息给单人

6.3发送消息给多人

7. 结束程序/切换账号登录

企业微信API对接文档

1.背景

想通过程序发送制定的消息给微信客户,客户需要接收到消息提醒并且可以直接打开微信查看(前提条件用户用加了门店企业微信好友),针对上面问题,提供两个接口:

1、一个是获取企业微信的用户的列表

2、一个是直接发送用户消息

2.获取微信第三方token

获取第三方token,申请地址:Token 自助服务系统

目前已经获取到的token是(注意大家获取到token,试用期仅有7天,如想续期请自行续费):

puppet_workpro_867******41e7908d3ee3b44f5421

3.安装docker环境

请先使用一个安装好docker 的服务器。请自行百度,在服务器如何安装docker。   

方式一(推荐):阿里云安装docker,根据服务器类型选择安装,操作文档如下:

安装Docker并使用_云服务器 ECS(ECS)-阿里云帮助中心

方式二:执行下面的命令。

4.打包与启动

4.1打包镜像

  • 将源码包的文件,复制到服务器某个路径下:(如图)

  • 进入服务器,到指定目录下:(如图)

  • 输入命令:docker build -t wechat_data_con .  (如图,回车键执行,安装依赖以及所需环境)

server.js 伪代码参考

// server.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 9898;

app.use(bodyParser.json());
app.use(express.static('public'));

let verifyCode = ''; // 用于存储用户提交的验证码

app.post('/submit-verify-code', (req, res) => {
    const { verifyCode: userVerifyCode } = req.body;
    verifyCode = userVerifyCode;
    res.json({ message: '验证码已接收', verifyCode: userVerifyCode });
});

app.listen(port, () => {
    console.log(`服务器运行在 http://localhost:${port}`);
});

package.json伪代码参考

{
  "name": "workpro-getting-started",
  "version": "1.0.0",
  "description": "basic example on workpro service",
  "main": "index.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "ts-node index.ts"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/juzibot/workpro-getting-started.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/juzibot/workpro-getting-started/issues"
  },
  "homepage": "https://github.com/juzibot/workpro-getting-started#readme",
  "dependencies": {
    "@juzi/wechaty": "^1.0.66",
    "@juzi/wechaty-puppet": "^1.0.66",
    "qrcode-terminal": "^0.12.0",
    "express": "^4.17.1",
    "body-parser": "^1.20.0",
    "@grpc/grpc-js": "1.8.12",
    "node-fetch": "^2.6.1",
    "node-cache": "^5.1.2"
  },
  "devDependencies": {
    "@types/qrcode-terminal": "^0.12.0",
    "@types/express": "^4.17.6"
  }
}

4.2启动容器(启动应用)

  • 依赖安装完成后,输入命令:docker run -p 9898:9898 --restart on-failure wechat_data_con  (如图,端口自行控制)

5.企业微信二维码验证

5.1 获取初始二维码

(1)发送接口请求获取初始二维码,docker日志查看如果不会请自行百度;

(2)开启程序post方法请求:http:127.0.0.1:9898/goStart

(3)上面的接口127.0.0.1根据实际服务换成自己的IP,或者绑定对应的域名。

  • 发送请求,启动获取二维码接口。(如图)

日志台会出现一个二维码。(如图)

5.2 第1次二维码验证

  • 使用手机企业微信,扫描二维码,扫描完了之后,手机企业微信,会弹出一个 6位数的验证码,配合上图的qrcodeKey,请求接口:(如图)

验证成功后,日志台输出:(如图),表示登录成功

5.3 第2次二维码验证

  • 特别注意,因企业微信官方的原因,当前账号,首次这样扫码登录的情况下,在30分钟内,会在企业微信要求,再次验证。如下图:

这个时候,日志台,会重新打印二维码,点击 确定是本人使用,然后扫描二维码,即可。

6.企业微信三个接口

6.1 获取所有用户

(1)post方法请求:http:127.0.0.1:9898/get-all-user

(2)body传参方式,参数说明:

        pageSize:需要发送的企业微信消息内容

        id:上面获取到用户信息的用户id

(3)备注:上面的接口127.0.0.1根据实际服务换成自己的IP,或者绑定对应的域名。

(4)9898对应服务器安全组需要放行该端口,如果启动防火墙也要放开该端口号。

  •  请求接口,获取所有用户:(如图)

datas为用户数据列表, hasNextPage为是否有下一页。

各个字段都十分容易理解,自行翻译吧,下面是参数:

_events 和 _eventsCount:事件相关的计数器。

id:标识符,通常用于唯一标识一个对象或记录。

payload:负载,指传输的数据内容。

address:地址,指用户的居住地址或联系地址。

alias:别名,用户使用的另一个名字或昵称。

avatar:头像,是指用户的照片或代表图像的链接。

city:城市,用户所在的城市。

corporation:公司,用户所在的公司或组织。

coworker:同事,可能表示用户是否是联系人的同事。

description:描述,可能是指对用户的一些描述性信息。

friend:朋友,可能表示用户是否是联系人的朋友。

gender:性别,1通常表示男性,0代表女性

handle:处理

name:名字,用户的姓名。

phone:电话,用户的联系电话。

province:省份,用户所在的省份。

signature:签名,用户的签名或个人格言。

star:星标,可能表示用户是否被标记为重要联系人。

title:标题,可能是指用户的职位或头衔。

type:类型,1可能表示用户类型或状态

weixin:微信,用户的微信账号或标识。

additionalInfo:额外信息,包含一些用于识别或分类用户的附加数据。

corpld 和 sCorpld:与公司或组织相关的某种标识符。

status:状态,5表示用户的状态码。

tags:标签,用于标记用户或分类的关键词列表,这里是一个数组。

realName:真实姓名,用户的正式姓名。

aka:也被称为,表示用户的其他已知名称或别名。

hasNextPage:有下一页,这通常用于分页显示,表示数据还有更多的部分。

6.2 发送消息给单人

发送消息接口:(如图下图所示

(1)post方法请求:http:127.0.0.1:9898/send-message

(2)body传参方式,参数说明:

        message:需要发送的企业微信消息内容

        id:上面获取到用户信息的用户id

(3)备注:上面的接口127.0.0.1根据实际服务换成自己的IP,或者绑定对应的域名。

6.3发送消息给多人

(1)post方法请求:http:127.0.0.1:9898/send-message-all

(2)body传参方式,参数说明:

        message:需要发送的企业微信消息内容

        id:上面获取到用户信息的用户id

(3)备注:上面的接口127.0.0.1根据实际服务换成自己的IP,或者绑定对应的域名。

(4)上面获取到的用户信息的tag(标签),可在下图那里管理。

效果如图:

7.结束程序/切换账号登录

(1)当想更换企业微信绑定者的时候,调用下面的接口进行结束,然后重新绑定。

(2)结束程序post方法请求:http:127.0.0.1:9898/goEnd

(3)备注:上面的接口127.0.0.1根据实际服务换成自己的IP,或者绑定对应的域名。

  • 结束程序/切换账号登录,(如图)

控制台日志 ,会重新打印二维码,请重新执行上面的步骤2~……

说明:原文档是我同事 陈伟俊 编写,本人觉得比较有意义文章,稍微整理输出分享给大家学习,希望这篇博客能够为你在工作中提供一些启发和指导。如果你有任何问题或需要进一步的建议,欢迎在评论区留言交流。让我们一起探索IT世界的无限可能!


博主还写了人工智能一些文章,请各位大佬批评指正:

1、人工智能、机器学习、深度学习:技术革命的深度解析

2、GPT-5:人工智能的新篇章,未来已来

3、人工智能时代,程序员如何保持核心竞争力?

4、防范AI诈骗:技术、教育与法律的共同防线

5、详细的人工智能学习路线和资料推荐

6、利用AI提高内容生产效率的五个方案

7、目前国内AI大厂大模型列表优缺点、原理、使用、案例和注意事项

8、Stable Diffusion 本地部署教程

9、数据挖掘案例分析、经典案例、技术实现方案

10、讲解人工智能在现代科技中的应用和未来发展趋势

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

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

相关文章

上博士为了毕业写学术论文头都大了,但更难受的是英语不咋地,投稿后经常会因为语言问题而惨遭拒稿,每每想起就令人心情郁郁,天台可期。

上博士为了毕业写学术论文头都大了,但更难受的是英语不咋地,投稿后经常会因为语言问题而惨遭拒稿,每每想起就令人心情郁郁,天台可期。有些审稿人也会直接告知需要专业的修改,那咋整呢,让润色呗,…

虚拟机virtualbox linux ubuntu使用usb串口

1.卸载brltty sudo apt remove brltty brltty是一个没啥用但是会抢占ch431的软件,所以卸载它 2.连接上串口,点击连接对应的usb串口 3.查看是否连接上 sudo dmesg -T | grep tty 查看tty组的最近日志,如果连接成功会显示连接的时间和串口…

基于数据挖掘的心力衰竭疾病风险评估系统

B站视频及代码下载:基于数据挖掘的心力衰竭疾病风险评估系统_哔哩哔哩_bilibili 1. 项目简介 心力衰竭是一种常见的心脏疾病,它严重影响患者的生活质量和预期寿命。早期识别和干预对于改善患者的预后至关重要。近年来,随着大数据技术和机器学…

eleme

设置主从从mysql57服务器 --配置主数据库 # systemctl stop firewalld # setenforce 0 # systemctl disable firewalld # ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz # cp -r mysql-5.7.44-linux-…

【题解】【循环】——[NOIP2010 普及组] 数字统计

【题解】【循环】——[NOIP2010 普及组] 数字统计 [NOIP2010 普及组] 数字统计题目描述输入格式输出格式输入输出样例输入 #1输出 #1输入 #2输出 #2 提示 1.题意解析2.AC代码 [NOIP2010 普及组] 数字统计 戳我查看题目(洛谷) 题目描述 请统计某个给定…

Spring cloud 网关信息

网关简绍 就是网络的关口&#xff0c;负责请求的路由、转发、身份校验。 引入网关依赖 <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependenc…

html+css 实现爱心跳动

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 实现爱心跳动&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f49…

速通教程:如何使用Coze+剪映,捏一个爆款悟空视频

程哥最近做了一个和黑神话悟空有关的视频&#xff0c;没想到就火了&#xff0c;视频主打一个玉石风格&#xff0c;就是下面这个视频。 视频请移步飞书观看&#xff1a;黑神话悟空玉石版 制作过程不算很复杂&#xff0c;全程只需要用到Coze智能体和剪映这两个工具。 智能体用…

做个实验

做个实验 #include <bits/stdc.h> using namespace std; #define int long long #define ll __int128_t #define ar array<int, 2> #define arr array<int, 3> int n, m, k, inf 1LL << 61, mod 998244353;// 1e97; const int N 5e5 50;void sol…

存储架构模式之数据库存储架构

数据库读写分离 读写分离解决了读的问题。读被分离出去了&#xff0c;写性能的提升还是会有的。 数据库慢不需要直接上读写分离&#xff0c;先尝试优化索引&#xff0c;加入缓存等操作。 数据库读写分离复杂度分析 任务分解&#xff1a;读请求打到从机&#xff0c;写请求打到…

kafka发送消息-生产者发送消息的分区策略(消息发送到哪个分区中?是什么策略)

生产者发送消息的分区策略&#xff08;消息发送到哪个分区中&#xff1f;是什么策略&#xff09; 1、默认策略&#xff0c;程序自动计算并指定分区1.1、指定key&#xff0c;不指定分区1.2、不指定key&#xff0c;不指定分区 2、轮询分配策略RoundRobinPartitioner2.1、创建配置…

【前端基础篇】CSS基础速通万字介绍(上篇)

文章目录 前言CSS介绍什么是CSS基本语法规范 引入方式内部样式表行内样式表外部样式总结 代码风格样式格式样式大小写空格规范 选择器选择器的功能选择器的种类基础选择器标签选择器类选择器id选择器通配符选择器基础选择器总结 复合选择器后代选择器子代选择器并集选择器 伪类…

杀软对抗 ----> 你真的Bypass火绒了吗?

目录 1.白加黑&#xff1f;syscall&#xff1f; ......绕过火绒&#xff1f;&#xff1f;&#xff1f; 2.内存对抗 ​3.CS已死 &#xff1f;&#xff1f;&#xff1f; 是真的 &#xff01; 玩免杀的都知道&#xff0c;我们说到国产&#xff0c;基本上都是360&#xff0c;对于…

AutoCAD 2010 x64图文安装教程及下载.

AutoCAD 2010 是 Autodesk 于2009年发布的一个版本&#xff0c;是 AutoCAD 系列中的一个重要里程碑。以下是 AutoCAD 2010 x64 的一些关键特性和改进&#xff1a; 参数化绘图&#xff1a;增加了几何约束和尺寸约束功能&#xff0c;使用户能够创建更精确、可调整的设计模型。动…

树章节习题

今天也是小小的把树的章节的内容大体过了一遍&#xff0c;总共有树上dp&#xff0c;LCA&#xff08;最近公共祖先&#xff09;&#xff0c;树的直径&#xff0c;以及树上差分 P1395 会议 很经典的树上dp里面的换根dp问题&#xff0c;现在这里说几个数组 sz数组&#xff0c;用…

多模态协同学习框架 DMCL

https://arxiv.org/pdf/2408.05914 一.discriminative and robust model 早期传统的reid的工作方式&#xff0c;因无法在大规模数据集上产生有竞争力的结果&#xff0c;所以本文中为相关工作&#xff0c;并未成为本文方法。 二.Dynamic Multimodal Feature Fusion Strategy 提…

计算机毕业设计选题推荐-产品订单管理系统-产品销售管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

YOLOv8目标检测推理流程及Python代码

在这章中将介绍目标检测推理原理,以及基于onnx模型使用Python语言进行推理。在推理原理章节中,将了解onnx模型的输入和输出,对输入的图片需要进行预处理的操作,对输出的结果需要进行后处理的操作等;在Python代码篇,将给出推理代码。 这里注意一下的是,由于在导出onnx模型…

【数学分析笔记】第2章第4节收敛准则(2)

2. 数列极限 2.4 收敛准则 2.4.1 单调有界定理 【例2.4.3】 x 1 2 , x n 1 3 2 x n , n 1 , 2 , 3 , . . . x_{1}\sqrt{2},x_{n1}\sqrt{32x_{n}},n1,2,3,... x1​2 ​,xn1​32xn​ ​,n1,2,3,...&#xff0c;证明 { x n } \{x_{n}\} {xn​}收敛并求极限。 【证】 0 <…

InternVL 多模态模型部署微调实践

一、什么是InternVL nternVL 是一种用于多模态任务的深度学习模型&#xff0c;旨在处理和理解多种类型的数据输入&#xff0c;如图像和文本。它结合了视觉和语言模型&#xff0c;能够执行复杂的跨模态任务&#xff0c;比如图文匹配、图像描述生成等。通过整合视觉特征和语言信…