新闻详情

新闻详情

首页 / 资讯中心 / 详情

企业微信API如何打造远程控制机器人?从消息指令到程序执行的完整链路

发布时间:2026/9/30 13:49:15来源:尧图网络
企业微信API如何打造远程控制机器人?从消息指令到程序执行的完整链路
最近做的企微二开运维要求能在企微里远程控制服务器——发条消息重启 nginx机器人执行命令并回结果。和之前聊的自然语言控制和快捷指令不同那些是控制业务系统这篇是远程控制程序执行——消息变指令、指令变命令、命令执行、结果回传。把完整链路怎么搭记下来。Eyun 平台开放的企微 API统一 POSTJSON鉴权用 App Token 加 appidAuthorization: Bearer eyk_xxxx路径{BASE_URL}/wx-api/api/模块/动作响应封套{code, data, detail, message, time}code 为 0 成功。指令接收Webhook 收消息运维在企微发重启 nginxWebhook 回调到后端from flask import Flask, request app Flask(__name__) app.route(/wx-api/webhook/, methods[POST]) def webhook(): event request.headers.get(X-Eyun-Event) if event ! message: return ok payload request.json[data] appid payload[appid] from_uin payload[fromUin] content payload[content] # 权限校验只有运维组能发控制指令 if not is_admin(from_uin): return ok # 解析指令 cmd parse_command(content) if cmd: execute_and_reply(appid, from_uin, cmd) return ok权限校验是第一道——只有授权人员能发控制指令普通员工发的消息不处理。指令解析消息变命令重启 nginx 要解析成具体命令。用指令映射表不直接执行用户输入COMMAND_MAP { 重启nginx: {cmd: systemctl restart nginx, risk: medium}, 重启redis: {cmd: systemctl restart redis, risk: medium}, 查看日志: {cmd: tail -100 /var/log/app.log, risk: low}, 清理缓存: {cmd: redis-cli flushall, risk: high}, 查看状态: {cmd: systemctl status nginx, risk: low} } def parse_command(content): content content.strip() for key, cmd_def in COMMAND_MAP.items(): if key in content: return cmd_def return None指令映射表是核心安全机制——不直接执行用户输入的字符串只执行预定义命令。用户说rm -rf /不会被执行不在映射表里就忽略。命令执行安全沙箱解析出命令后执行。高风险命令要二次确认import subprocess def execute_command(cmd_def, from_uin): if cmd_def[risk] high: # 高风险要二次确认 return {need_confirm: True, cmd: cmd_def[cmd]} try: result subprocess.run( cmd_def[cmd], shellTrue, capture_outputTrue, textTrue, timeout30 ) return { stdout: result.stdout[-2000:], # 截断防止太长 stderr: result.stderr[-500:], returncode: result.returncode } except subprocess.TimeoutExpired: return {error: 命令执行超时}timeout30防止命令卡死。输出截断防止消息太长发不出去。高风险命令如清理缓存返回需要确认不直接执行。关于消息接收和回复接口在Eyun 企业微信 API 平台有说明。结果回传调消息接口执行完调企微接口把结果发回去import requests BASE https://api.eyun.com HEADERS {Authorization: Bearer eyk_xxxx, Content-Type: application/json} def reply_result(appid, to_uin, result): if result.get(need_confirm): text f高风险操作{result[cmd]}\n回复确认执行其他忽略 elif result.get(error): text f执行失败{result[error]} else: stdout result.get(stdout, ).strip() text f执行完成返回码 {result[returncode]}\n输出\n{stdout} requests.post( f{BASE}/wx-api/api/message/sendText, headersHEADERS, json{appid: appid, to: to_uin, content: text} )结果格式化成文本发回去。输出太长截断关键字段返回码、错误保留。高风险操作发确认提示运维回复确认才执行。二次确认机制高风险命令的二次确认流程pending_confirms {} # from_uin - {cmd, timestamp} def handle_confirm(appid, from_uin, content): if content.strip() 确认 and from_uin in pending_confirms: pending pending_confirms[from_uin] if time.time() - pending[timestamp] 60: # 60秒内有效 result execute_command({cmd: pending[cmd], risk: low}, from_uin) reply_result(appid, from_uin, result) del pending_confirms[from_uin] def execute_and_reply(appid, from_uin, cmd_def): if cmd_def[risk] high: pending_confirms[from_uin] { cmd: cmd_def[cmd], timestamp: time.time() } reply_result(appid, from_uin, {need_confirm: True, cmd: cmd_def[cmd]}) else: result execute_command(cmd_def, from_uin) reply_result(appid, from_uin, result)确认有效期 60 秒超时要重新发指令。不做二次确认运维手滑发个清理缓存数据全没了。安全边界远程控制机器人安全是第一位的几条硬规矩指令映射表只执行预定义命令不执行任意输入权限校验只有授权人员能发指令风险分级高风险要二次确认执行超时防止命令卡死审计日志谁、什么时候、执行了什么、结果audit_log 表: from_uin command result timestamp ip审计日志事后可追溯。不做审计出了事故不知道谁干的。写在最后远程控制机器人这套东西本质是把企微消息接口和命令执行串起来——Webhook 收指令、映射表解析、subprocess 执行、sendText 回结果。安全靠指令映射表不执行任意输入、权限校验、风险分级、二次确认、审计日志。把安全做严运维在企微里发条消息就能管服务器——但每一步都可控可审计。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【避坑总结】用 AI 写毕业论文,这 5 个大坑千万别踩|Paperxie 一站式平台使用心得 2026/9/30 14:33:29

【避坑总结】用 AI 写毕业论文,这 5 个大坑千万别踩|Paperxie 一站式平台使用心得

前言 现在越来越多同学会借助 AI 工具辅助完成毕业论文,但是很多人在使用过程中踩了不少坑,轻则反复返工,重则影响论文送审。 很多同学盲目使用 AI,直接复制生成的全文,或者多个工具混用,文稿来回上传&…

阅读更多 →
软件工程专业转数据分析,需要补哪些统计和业务知识? 2026/9/30 14:33:10

软件工程专业转数据分析,需要补哪些统计和业务知识?

软件工程专业转数据分析,核心需要补3类统计核心知识和2类适配校招的通用业务知识,适用条件为已经掌握至少1门编程语言如Python或Java、处于大三下学期至应届生求职阶段、目标投递企业常规数据分析岗的软件工程专业学生,不需要零基础从头学基础…

阅读更多 →
从传统后端到阿里大模型:小白也能收藏的Agent/RAG进阶学习路径 2026/9/30 14:32:43

从传统后端到阿里大模型:小白也能收藏的Agent/RAG进阶学习路径

本文分享了作者从传统后端开发转行大模型应用层的五年经验,涵盖LLM API使用、Agent探索、Transformer原理、RAG技术栈、流式编程等关键阶段,强调技术结合产品思维的重要性,并推荐了吴恩达课程及配套学习资源,适合想要入门大模型的…

阅读更多 →
20260917-基于Freeswitch的软电话互播流程 2026/9/30 14:32:30

20260917-基于Freeswitch的软电话互播流程

一、安装和启动Freeswitch虚拟机连接的是内网,无法上网下载freeswitch。DS给的方案是,用VMware模拟出来一个虚拟机,连接外网后下载,之后再通过finalshell搞到内网的虚拟机上。但是弄了半天也没成功。于是将希望寄托于前人安装的fr…

阅读更多 →
怎么判断一个选题值不值得写?AI能帮做热度判断吗? 2026/9/30 14:32:23

怎么判断一个选题值不值得写?AI能帮做热度判断吗?

怎么判断一个选题值不值得写?AI能帮做热度判断吗?做内容最耗人的不是写,是选:每天一堆备选选题,到底哪个值得花时间?凭感觉选,经常写完没人看。这篇给一套可复用的选题判断框架,并讲…

阅读更多 →
browser-use 接入 Oracle OCI Generative AI:ChatOCIRaw 原始 API 集成实战指南 2026/9/30 14:32:09

browser-use 接入 Oracle OCI Generative AI:ChatOCIRaw 原始 API 集成实战指南

人工智能AI Agent浏览器控制GUI 自动化MCP 服务 【免费下载链接】browser-use Agents that use the browser. 项目地址: https://gitcode.com/GitHub_Trending/br/browser-use 点击查看 免费下载 本文围绕 browser-use 开源仓库中的 OCI Raw API 集成模块&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉