文章摘要本文主要介绍了企业微信API对接的详细过程包括获取token、安装docker环境、打包启动应用、企业微信二维码验证以及调用企业微信的三个主要接口获取所有用户、发送消息给单人、发送消息给多人等步骤旨在帮助企业通过程序发送消息给微信客户实现消息提醒和客户管理的功能【所有功能亲测有效】。目录企业微信API对接文档1.背景2.获取微信第三方token3.安装docker环境4.打包与启动4.1打包镜像4.2启动容器启动应用5.企业微信二维码验证5.1 获取初始二维码5.2 第1次二维码验证5.3 第2次二维码验证6.企业微信三个接口6.1 获取所有用户6.2 发送消息给单人6.3发送消息给多人7.部分源码展示7.1 Dockerfile伪代码7.2 index.tx伪代码8.结束程序/切换账号登录企业微信API对接文档1.背景想通过程序发送制定的消息给微信客户客户需要接收到消息提醒并且可以直接打开微信查看前提条件用户用加了门店企业微信好友针对上面问题提供两个接口1、一个是获取企业微信的用户的列表2、一个是直接发送用户消息2.获取微信第三方token获取第三方token申请目前已经获取到的token是注意大家获取到token试用期仅有7天如想续期请自行续费puppet_workpro_867******41e7908d3ee3b44f54213.安装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: https://gitee.com/laibin113/enterprise-wechat-messaging.git }, keywords: [], author: , license: ISC, bugs: { url: https://gitee.com/laibin113/enterprise-wechat-messaging.git }, homepage: https://gitee.com/laibin113/enterprise-wechat-messaging.git, 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/goStart3上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。发送请求启动获取二维码接口。如图日志台会出现一个二维码。如图5.2 第1次二维码验证使用手机企业微信扫描二维码扫描完了之后手机企业微信会弹出一个 6位数的验证码配合上图的qrcodeKey请求接口如图验证成功后日志台输出如图表示登录成功5.3 第2次二维码验证特别注意因企业微信官方的原因当前账号首次这样扫码登录的情况下在30分钟内会在企业微信要求再次验证。如下图这个时候日志台会重新打印二维码点击 确定是本人使用然后扫描二维码即可。6.企业微信三个接口6.1 获取所有用户1post方法请求http:127.0.0.1:9898/get-all-user2body传参方式参数说明pageSize:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。49898对应服务器安全组需要放行该端口如果启动防火墙也要放开该端口号。请求接口获取所有用户如图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 发送消息给单人发送消息接口如图下图所示1post方法请求http:127.0.0.1:9898/send-message2body传参方式参数说明message:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。6.3发送消息给多人1post方法请求http:127.0.0.1:9898/send-message-all2body传参方式参数说明message:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。4上面获取到的用户信息的tag标签可在下图那里管理。效果如图7.部分源码展示7.1 Dockerfile伪代码# Dockerfile FROM node:lts # 复制应用程序代码到容器中 COPY . /appWxWork WORKDIR /appWxWork ENV WECHATY_PUPPET_SERVICE_AUTHORITYtoken-service-discovery-test.juzibot.com RUN npm config set registry https://registry.npmmirror.com/ # 在容器中安装 ts-node 和应用程序所需的依赖 RUN npm install ts-node typescript # 暴露端口 8088 EXPOSE 9898 # 运行应用程序 CMD [npm, start]7.2 index.tx伪代码import {ScanStatus, WechatyBuilder} from juzi/wechaty import QrcodeTerminal from qrcode-terminal const NodeCache require(node-cache); const express require(express); const bodyParser require(body-parser); const myCache new NodeCache({ stdTTL: 3660, checkperiod: 1200 }); const app express(); const port 9898; app.use(bodyParser.json()); app.use(express.static(public)); let verifyCode1 ; // 用于存储用户提交的验证码 const fetch require(node-fetch); let myUserName ; const token puppet_workpro_******1241e7908d3ee3b44f5421; const bot WechatyBuilder.build({ puppet: juzi/wechaty-puppet-service, //authority: token-service-discovery-test.juzibot.com, puppetOptions: { token, tls: { disable: true // currently we are not using TLS since most puppet-service versions does not support it. } } }) const store { qrcodeKey: , } ......8.结束程序/切换账号登录1当想更换企业微信绑定者的时候调用下面的接口进行结束然后重新绑定。2结束程序post方法请求http:127.0.0.1:9898/goEnd3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。结束程序/切换账号登录如图控制台日志 会重新打印二维码请重新执行上面的步骤2~……本文关键词解释企业微信API指企业微信提供的应用程序接口允许企业开发自己的应用与企业微信进行集成实现如发送消息、获取用户列表等功能以便更好地管理和沟通微信客户。token在企业微信API对接中用于验证身份和授权访问的令牌。文中提到的“puppet_workpro_867******41e7908d3ee3b44f5421”就是获取到的token示例开发者需使用有效的token来调用相关接口。docker是一个开源的应用容器引擎可以让开发者打包他们的应用以及依赖包到一个可移植的容器中然后发布到任何流行的 Linux 机器上。在本文中需要先在服务器上安装docker环境以便后续打包和启动应用。二维码验证在企业微信API对接过程中用于登录和身份验证的关键步骤。通过发送接口请求获取初始二维码使用手机企业微信扫描二维码后获取验证码再配合qrcodeKey进行验证以完成登录操作。用户列表接口指用于获取企业微信所有用户信息的接口通过post方法请求“http://127.0.0.1:9898/get -all-user”并传入相应的参数如pageSize和id即可获取包含用户各种信息如id、name、phone等的用户数据列表以及是否有下一页的标识。发送消息接口单人用于向单个企业微信用户发送消息的接口通过post方法请求“http://127.0.0.1:9898/send-message”并在body中传入消息内容message和用户idid即可实现给指定用户发送消息的功能。发送消息接口多人用于向多个企业微信用户发送消息的接口通过post方法请求“http://127.0.0.1:9898/send-message-all”同样需要在body中传入消息内容message和用户idid可实现批量发送消息给多人提高消息通知的效率。分页参数pageSize在获取用户列表接口中使用用于指定每次请求获取的用户数量便于对大量用户数据进行分页处理避免一次性获取过多数据导致性能问题或请求超时等情况。状态码status在用户数据中包含的一个字段用于表示用户的状态例如文中提到的“5”表示用户的状态码不同的状态码可能代表用户的不同状态如正常、禁用等开发者可以根据状态码对用户进行相应的管理和操作。标签tags也是用户数据中的一个字段以数组形式呈现用于对用户进行标记和分类方便企业根据不同的业务需求对用户群体进行细分和精准营销比如可以根据标签筛选出特定类型的客户发送针对性的消息。说明原文档是我同事 陈伟俊 编写本人觉得比较有意义文章稍微整理输出分享给大家学习希望这篇博客能够为你在工作中提供一些启发和指导。如果你有任何问题或需要进一步的建议欢迎在评论区留言交流。让我们一起探索IT世界的无限可能博主还写了人工智能一些文章请各位大佬批评指正1、人工智能、机器学习、深度学习技术革命的深度解析2、GPT-5人工智能的新篇章未来已来3、人工智能时代程序员如何保持核心竞争力4、防范AI诈骗技术、教育与法律的共同防线5、详细的人工智能学习路线和资料推荐6、利用AI提高内容生产效率的五个方案7、目前国内AI大厂大模型列表优缺点、原理、使用、案例和注意事项8、Stable Diffusion 本地部署教程9、数据挖掘案例分析、经典案例、技术实现方案10、讲解人工智能在现代科技中的应用和未来发展趋势
企业微信API对接的全流程,获取所有用户、发送消息给单人、发送消息给多人
文章摘要本文主要介绍了企业微信API对接的详细过程包括获取token、安装docker环境、打包启动应用、企业微信二维码验证以及调用企业微信的三个主要接口获取所有用户、发送消息给单人、发送消息给多人等步骤旨在帮助企业通过程序发送消息给微信客户实现消息提醒和客户管理的功能【所有功能亲测有效】。目录企业微信API对接文档1.背景2.获取微信第三方token3.安装docker环境4.打包与启动4.1打包镜像4.2启动容器启动应用5.企业微信二维码验证5.1 获取初始二维码5.2 第1次二维码验证5.3 第2次二维码验证6.企业微信三个接口6.1 获取所有用户6.2 发送消息给单人6.3发送消息给多人7.部分源码展示7.1 Dockerfile伪代码7.2 index.tx伪代码8.结束程序/切换账号登录企业微信API对接文档1.背景想通过程序发送制定的消息给微信客户客户需要接收到消息提醒并且可以直接打开微信查看前提条件用户用加了门店企业微信好友针对上面问题提供两个接口1、一个是获取企业微信的用户的列表2、一个是直接发送用户消息2.获取微信第三方token获取第三方token申请目前已经获取到的token是注意大家获取到token试用期仅有7天如想续期请自行续费puppet_workpro_867******41e7908d3ee3b44f54213.安装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: https://gitee.com/laibin113/enterprise-wechat-messaging.git }, keywords: [], author: , license: ISC, bugs: { url: https://gitee.com/laibin113/enterprise-wechat-messaging.git }, homepage: https://gitee.com/laibin113/enterprise-wechat-messaging.git, 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/goStart3上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。发送请求启动获取二维码接口。如图日志台会出现一个二维码。如图5.2 第1次二维码验证使用手机企业微信扫描二维码扫描完了之后手机企业微信会弹出一个 6位数的验证码配合上图的qrcodeKey请求接口如图验证成功后日志台输出如图表示登录成功5.3 第2次二维码验证特别注意因企业微信官方的原因当前账号首次这样扫码登录的情况下在30分钟内会在企业微信要求再次验证。如下图这个时候日志台会重新打印二维码点击 确定是本人使用然后扫描二维码即可。6.企业微信三个接口6.1 获取所有用户1post方法请求http:127.0.0.1:9898/get-all-user2body传参方式参数说明pageSize:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。49898对应服务器安全组需要放行该端口如果启动防火墙也要放开该端口号。请求接口获取所有用户如图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 发送消息给单人发送消息接口如图下图所示1post方法请求http:127.0.0.1:9898/send-message2body传参方式参数说明message:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。6.3发送消息给多人1post方法请求http:127.0.0.1:9898/send-message-all2body传参方式参数说明message:需要发送的企业微信消息内容id:上面获取到用户信息的用户id3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。4上面获取到的用户信息的tag标签可在下图那里管理。效果如图7.部分源码展示7.1 Dockerfile伪代码# Dockerfile FROM node:lts # 复制应用程序代码到容器中 COPY . /appWxWork WORKDIR /appWxWork ENV WECHATY_PUPPET_SERVICE_AUTHORITYtoken-service-discovery-test.juzibot.com RUN npm config set registry https://registry.npmmirror.com/ # 在容器中安装 ts-node 和应用程序所需的依赖 RUN npm install ts-node typescript # 暴露端口 8088 EXPOSE 9898 # 运行应用程序 CMD [npm, start]7.2 index.tx伪代码import {ScanStatus, WechatyBuilder} from juzi/wechaty import QrcodeTerminal from qrcode-terminal const NodeCache require(node-cache); const express require(express); const bodyParser require(body-parser); const myCache new NodeCache({ stdTTL: 3660, checkperiod: 1200 }); const app express(); const port 9898; app.use(bodyParser.json()); app.use(express.static(public)); let verifyCode1 ; // 用于存储用户提交的验证码 const fetch require(node-fetch); let myUserName ; const token puppet_workpro_******1241e7908d3ee3b44f5421; const bot WechatyBuilder.build({ puppet: juzi/wechaty-puppet-service, //authority: token-service-discovery-test.juzibot.com, puppetOptions: { token, tls: { disable: true // currently we are not using TLS since most puppet-service versions does not support it. } } }) const store { qrcodeKey: , } ......8.结束程序/切换账号登录1当想更换企业微信绑定者的时候调用下面的接口进行结束然后重新绑定。2结束程序post方法请求http:127.0.0.1:9898/goEnd3备注上面的接口127.0.0.1根据实际服务换成自己的IP或者绑定对应的域名。结束程序/切换账号登录如图控制台日志 会重新打印二维码请重新执行上面的步骤2~……本文关键词解释企业微信API指企业微信提供的应用程序接口允许企业开发自己的应用与企业微信进行集成实现如发送消息、获取用户列表等功能以便更好地管理和沟通微信客户。token在企业微信API对接中用于验证身份和授权访问的令牌。文中提到的“puppet_workpro_867******41e7908d3ee3b44f5421”就是获取到的token示例开发者需使用有效的token来调用相关接口。docker是一个开源的应用容器引擎可以让开发者打包他们的应用以及依赖包到一个可移植的容器中然后发布到任何流行的 Linux 机器上。在本文中需要先在服务器上安装docker环境以便后续打包和启动应用。二维码验证在企业微信API对接过程中用于登录和身份验证的关键步骤。通过发送接口请求获取初始二维码使用手机企业微信扫描二维码后获取验证码再配合qrcodeKey进行验证以完成登录操作。用户列表接口指用于获取企业微信所有用户信息的接口通过post方法请求“http://127.0.0.1:9898/get -all-user”并传入相应的参数如pageSize和id即可获取包含用户各种信息如id、name、phone等的用户数据列表以及是否有下一页的标识。发送消息接口单人用于向单个企业微信用户发送消息的接口通过post方法请求“http://127.0.0.1:9898/send-message”并在body中传入消息内容message和用户idid即可实现给指定用户发送消息的功能。发送消息接口多人用于向多个企业微信用户发送消息的接口通过post方法请求“http://127.0.0.1:9898/send-message-all”同样需要在body中传入消息内容message和用户idid可实现批量发送消息给多人提高消息通知的效率。分页参数pageSize在获取用户列表接口中使用用于指定每次请求获取的用户数量便于对大量用户数据进行分页处理避免一次性获取过多数据导致性能问题或请求超时等情况。状态码status在用户数据中包含的一个字段用于表示用户的状态例如文中提到的“5”表示用户的状态码不同的状态码可能代表用户的不同状态如正常、禁用等开发者可以根据状态码对用户进行相应的管理和操作。标签tags也是用户数据中的一个字段以数组形式呈现用于对用户进行标记和分类方便企业根据不同的业务需求对用户群体进行细分和精准营销比如可以根据标签筛选出特定类型的客户发送针对性的消息。说明原文档是我同事 陈伟俊 编写本人觉得比较有意义文章稍微整理输出分享给大家学习希望这篇博客能够为你在工作中提供一些启发和指导。如果你有任何问题或需要进一步的建议欢迎在评论区留言交流。让我们一起探索IT世界的无限可能博主还写了人工智能一些文章请各位大佬批评指正1、人工智能、机器学习、深度学习技术革命的深度解析2、GPT-5人工智能的新篇章未来已来3、人工智能时代程序员如何保持核心竞争力4、防范AI诈骗技术、教育与法律的共同防线5、详细的人工智能学习路线和资料推荐6、利用AI提高内容生产效率的五个方案7、目前国内AI大厂大模型列表优缺点、原理、使用、案例和注意事项8、Stable Diffusion 本地部署教程9、数据挖掘案例分析、经典案例、技术实现方案10、讲解人工智能在现代科技中的应用和未来发展趋势