企业微信智能机器人 Python 插件获取回调和发送消息支持文字图片语音视频

Python 企业微信机器人 Webhook 自动化消息推送实战 本文详细介绍了如何使用Python通过企业微信机器人Webhook实现自动化消息推送。从创建机器人、配置Webhook URL,到利用requests库发送文本、Markdown、图片、文件等多种格式消息,并提供了服务器监控告警、自动化报告推送等实战场景与最佳实践,助力团队提升沟通效率。 阅读详情

企业微信智能机器人 Python 插件

企业微信智能机器人的 Python SDK,基于 WebSocket 长连接实现,功能完整、易于使用。

📋 目录

✨ 特性

核心能力

  • ✅ WebSocket 长连接 - 稳定的双向通信,自动心跳保活
  • ✅ 消息收发 - 支持文本、图片、视频、文件等多种消息类型
  • ✅ 分片上传 - 支持大文件上传(最大 100MB)
  • ✅ 媒体下载 - 自动下载并解密媒体文件
  • ✅ 访问控制 - 灵活的 DM 和群聊权限管理
  • ✅ 自动重连 - 网络断开自动重连(最多 100 次)
  • ✅ 消息历史 - 内置消息历史存储
  • ✅ 类型安全 - 完整的类型注解

技术特点

  • 🔒 线程安全 - 使用锁保护共享资源
  • 🎯 响应等待 - 同步等待服务器响应,确保可靠性
  • 📝 详细日志 - 完整的调试和错误日志
  • 🔄 兼容性 - 与 Node.js 版本协议完全兼容
  • 🚀 高性能 - 异步处理,支持高并发

🚀 快速开始

安装依赖

pip install -r requirements.txt

依赖包:

  • websocket-client>=1.6.0 - WebSocket 客户端
  • requests>=2.28.0 - HTTP 请求
  • pyyaml>=6.0 - YAML 配置解析
  • pycryptodome>=3.15.0 - AES 加密解密

基础使用

1. 创建配置文件

复制 config.yaml.example 为 config.yaml:

channels:
  wecom:
    botId: "你的机器人ID"
    secret: "你的机器人密钥"
    dmPolicy: "open"
    groupPolicy: "open"
2. 运行示例程序
# 启动主程序(接收消息并自动下载媒体)
python src/main.py --config config.yaml

# 发送文本消息
python test_upload.py --bot-id YOUR_BOT_ID --secret YOUR_SECRET --chat-id CHAT_ID --text "你好"

# 发送图片
python test_upload.py --bot-id YOUR_BOT_ID --secret YOUR_SECRET --chat-id CHAT_ID --file-path image.jpg
3. 代码示例
from src import create_plugin, WeComMessage

# 创建插件实例
plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret"
)

# 设置消息回调
def on_message(msg: WeComMessage):
    print(f"收到消息: {msg.content}")
    # 回复消息
    plugin.reply_message(msg, "收到你的消息了")

plugin.on_message = on_message

# 启动插件
plugin.start()

🏗️ 项目架构

目录结构

wecom-python-plugin/
├── src/                         # 核心源代码
│   ├── __init__.py              # 主插件实现
│   ├── main.py                  # 应用入口
│   └── handlers.py              # 消息历史存储
├── sender_api.py                # API 发送接口
│   ├── text                     # 文本消息发送
│   ├── image                    # 图片消息发送
│   ├── vedio                    # 视频消息发送
│   └── file                     # 文件消息发送
├── downloader.py                # 媒体下载器(图片/视频/文件)
├── config.yaml                  # 配置文件
├── requirements.txt             # Python 依赖
└── download/                    # 媒体文件下载目录

核心模块

WeComClient - WebSocket 客户端

负责与企业微信服务器的 WebSocket 通信:

  • 连接管理 - 建立连接、认证、心跳、重连
  • 消息收发 - 接收推送、发送消息
  • 媒体上传 - 分片上传大文件
  • 响应等待 - 同步等待服务器响应
MessageParser - 消息解析器

解析企业微信推送的消息:

  • 提取消息字段(ID、类型、内容等)
  • 处理不同消息类型(文本、图片、视频、文件)
  • 创建 WeComMessage 对象
AccessController - 访问控制器

管理消息访问权限:

MediaDownloader - 媒体下载器

下载和解密媒体文件:

  • HTTP 下载
  • AES-256-CBC 解密
  • 文件类型检测(Magic Bytes)
  • 自动保存

🔧 核心功能

1. 消息接收

支持接收以下类型的消息:

消息类型说明字段
text文本消息content, mentioned_list
image图片消息url, aeskey, media_id
video视频消息url, aeskey, media_id
voice语音消息url, aeskey, media_id
file文件消息url, aeskey, media_id, filename

消息对象结构:

@dataclass
class WeComMessage:
    msg_id: str                    # 消息ID
    msg_type: str                  # 消息类型
    chat_type: str                 # 会话类型(single/group)
    chat_id: str                   # 会话ID
    from_user_id: str              # 发送者ID
    from_user_name: str            # 发送者名称
    content: str                   # 消息内容
    media_url: str                 # 媒体URL
    mentioned_list: List[str]      # @成员列表
    timestamp: int                 # 时间戳
    raw_body: Dict[str, Any]       # 原始消息体

2. 消息发送

发送文本消息
# 单聊
plugin.send_message("user_id", "你好")

# 群聊(@成员)
plugin.send_message("group_id", "大家好", mentioned_list=["user1", "user2"])

# 回复消息
plugin.reply_message(msg, "收到你的消息了")
发送图片
plugin.client.send_image("chat_id", "path/to/image.jpg")

支持格式: JPG, PNG, GIF, BMP
大小限制: ≤ 10MB

发送视频
plugin.client.send_video(
    "chat_id",
    "path/to/video.mp4",
    title="视频标题",
    description="视频描述"
)

支持格式: MP4
大小限制: ≤ 100MB
分辨率建议: ≤ 1920×1080
编码要求: H.264 + AAC

发送文件
plugin.client.send_file("chat_id", "path/to/document.pdf")

支持格式: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, ZIP 等
大小限制: ≤ 100MB

3. 媒体上传机制

分片上传流程
1. 初始化上传
   ├─ 发送文件信息(大小、MD5、分片数)
   └─ 获取 upload_id

2. 分片上传
   ├─ 每片 512KB
   ├─ Base64 编码
   ├─ 最多 200 片(约 100MB)
   └─ 等待每片确认

3. 完成上传
   ├─ 发送完成请求
   └─ 获取 media_id

4. 发送消息
   └─ 使用 media_id 发送
上传参数
CHUNK_SIZE = 512 * 1024    # 分片大小:512KB
MAX_CHUNKS = 200           # 最大分片数:200(约100MB)

修改大小限制:

如需支持更大文件,修改 src/__init__.py 中的 MAX_CHUNKS 参数:

MAX_CHUNKS = 400  # 支持约 200MB

4. 媒体下载机制

自动下载

主程序会自动下载收到的媒体文件:

# 在 src/main.py 中已实现
def _on_message(self, msg: WeComMessage):
    if msg.msg_type in ["image", "video", "file"]:
        result = self.downloader.download_from_callback(
            msg.raw_body,
            self.download_dir
        )
        if result:
            print(f"文件已保存: {result['file_path']}")
手动下载
from downloader import MediaDownloader

downloader = MediaDownloader()

# 从回调消息下载
result = downloader.download_from_callback(
    callback_data=msg.raw_body,
    save_dir="./download"
)

# 从URL下载
data = downloader.download_from_url(
    url="https://...",
    aeskey="base64_encoded_key",
    save_path="output.jpg"
)
AES 解密

企业微信的媒体文件使用 AES-256-CBC 加密:

  • 算法: AES-256-CBC
  • IV: 密钥的前 16 字节
  • 密钥格式: URL 安全的 Base64 编码

下载器会自动处理解密过程。

文件类型检测

通过 Magic Bytes 自动识别文件类型:

格式Magic Bytes扩展名
JPEGFF D8 FF.jpg
PNG89 50 4E 47.png
MP400 00 00 ?? 66 74 79 70.mp4
PDF25 50 44 46.pdf
ZIP50 4B 03 04.zip

支持 30+ 种文件格式的自动识别。

5. 访问控制

DM(私聊)策略
dmPolicy: "open"              # 策略类型
allowFrom: ["user1", "user2"] # 白名单(allowlist模式)

策略类型:

  • pairing - 配对模式(需要用户首次发送消息批准)
  • open - 开放模式(所有用户可发送)
  • allowlist - 白名单模式(只允许白名单用户)
  • disabled - 禁用模式(不接收任何私聊)
群聊策略
groupPolicy: "open"                    # 策略类型
groupAllowFrom: ["group1", "group2"]   # 白名单

策略类型:

  • open - 开放模式(所有群聊可用)
  • allowlist - 白名单模式(只允许白名单群聊)
  • disabled - 禁用模式(不接收任何群消息)

6. 连接管理

心跳保活
HEARTBEAT_INTERVAL_MS = 30000  # 30秒发送一次心跳

自动发送 ping 帧保持连接活跃。

自动重连
MAX_RECONNECT_ATTEMPTS = 100   # 最多重连100次

连接断开时自动重连,使用指数退避策略。

连接状态回调
def on_connected():
    print("已连接")

def on_disconnected(reason):
    print(f"已断开: {reason}")

def on_error(error):
    print(f"错误: {error}")

plugin.on_connected = on_connected
plugin.on_disconnected = on_disconnected
plugin.on_error = on_error

📚 API 文档

插件初始化

方式1:使用工厂函数(推荐)
from src import create_plugin

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret",
    dm_policy="open",
    group_policy="open"
)
方式2:手动创建
from src import WeComPlugin, WeComConfig

config = WeComConfig(
    bot_id="your_bot_id",
    secret="your_secret",
    dm_policy="open",
    allow_from=["user1", "user2"],
    group_policy="allowlist",
    group_allow_from=["group1"],
    websocket_url="wss://openws.work.weixin.qq.com"
)

plugin = WeComPlugin(config)

WeComPlugin 类

方法
方法说明参数
start()启动插件无
stop()停止插件无
send_message(chat_id, content, mentioned_list)发送文本消息chat_id, content, mentioned_list=[]
reply_message(msg, content)回复消息msg, content
回调函数
回调说明参数
on_message收到消息msg: WeComMessage
on_connected连接成功无
on_disconnected连接断开reason: str
on_error发生错误error: Exception

WeComClient 类

方法
方法说明返回值
send_text(chat_id, content, mentioned_list)发送文本bool
send_image(chat_id, image_path)发送图片bool
send_video(chat_id, video_path, title, description)发送视频bool
send_file(chat_id, file_path)发送文件bool
upload_media(file_path, media_type)上传媒体media_id: str

MediaDownloader 类

方法
方法说明返回值
download_from_callback(callback_data, save_dir)从回调下载Dict
download_from_url(url, aeskey, save_path)从URL下载bytes
download_image(image_data, save_path)下载图片bytes
download_video(video_data, save_path)下载视频bytes
download_file(file_data, save_path)下载文件bytes

⚙️ 配置说明

完整配置示例

channels:
  wecom:
    # 必填:机器人凭证
    botId: "aibhpZhzMDvtrBcmnCq0N0FEbCx78CIQOhQ"
    secret: "kOtU0A4wKCGfViGin1zjcp6ClwBdlyae1AOmUY2Yjmm"

    # 可选:WebSocket地址(默认值)
    websocketUrl: "wss://openws.work.weixin.qq.com"

    # DM访问策略
    dmPolicy: "open"              # pairing | open | allowlist | disabled
    allowFrom: []                 # DM白名单

    # 群聊访问策略
    groupPolicy: "open"           # open | allowlist | disabled
    groupAllowFrom: []            # 群聊白名单

# 日志配置
logging:
  level: INFO                     # DEBUG | INFO | WARNING | ERROR
  file: "wecom.log"

# 消息存储配置
storage:
  history_days: 180               # 历史消息保留天数
  type: memory                    # memory | mysql | postgres

# AI配置(可选)
ai:
  enabled: false
  api_url: ""
  api_key: ""

配置加载优先级

  1. 命令行参数(最高优先级)

    python src/main.py --bot-id XXX --secret XXX
    
  2. 配置文件

    python src/main.py --config config.yaml
    
  3. OpenClaw配置(自动读取 ~/.openclaw/config.json)

💡 使用示例

示例1:简单的回声机器人

from src import create_plugin, WeComMessage

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret"
)

def on_message(msg: WeComMessage):
    # 回复相同的内容
    plugin.reply_message(msg, f"你说: {msg.content}")

plugin.on_message = on_message
plugin.start()

示例2:自动回复机器人

from src import create_plugin, WeComMessage

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret"
)

# 关键词回复字典
REPLIES = {
    "你好": "你好!有什么可以帮助你的吗?",
    "帮助": "我可以回答你的问题,发送图片、视频等。",
    "再见": "再见!祝你有美好的一天!"
}

def on_message(msg: WeComMessage):
    content = msg.content.strip()

    # 查找匹配的关键词
    for keyword, reply in REPLIES.items():
        if keyword in content:
            plugin.reply_message(msg, reply)
            return

    # 默认回复
    plugin.reply_message(msg, "抱歉,我不太明白你的意思。")

plugin.on_message = on_message
plugin.start()

示例3:图片处理机器人

from src import create_plugin, WeComMessage
from downloader import MediaDownloader
from PIL import Image

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret"
)

downloader = MediaDownloader()

def on_message(msg: WeComMessage):
    if msg.msg_type == "image":
        # 下载图片
        result = downloader.download_from_callback(
            msg.raw_body,
            "./download"
        )

        if result:
            # 处理图片(例如:转换为灰度)
            img = Image.open(result['file_path'])
            gray_img = img.convert('L')
            gray_path = result['file_path'].replace('.jpg', '_gray.jpg')
            gray_img.save(gray_path)

            # 发送处理后的图片
            plugin.client.send_image(msg.chat_id, gray_path)
            plugin.reply_message(msg, "已将图片转换为灰度")

plugin.on_message = on_message
plugin.start()

示例4:群聊管理机器人

from src import create_plugin, WeComMessage

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret",
    group_policy="open"
)

def on_message(msg: WeComMessage):
    # 只处理群聊消息
    if msg.chat_type != "group":
        return

    content = msg.content.strip()

    # @所有人
    if content == "/all":
        plugin.send_message(
            msg.chat_id,
            "大家好!",
            mentioned_list=["@all"]
        )

    # 欢迎新成员
    elif content.startswith("/welcome"):
        user_id = content.split()[1] if len(content.split()) > 1 else None
        if user_id:
            plugin.send_message(
                msg.chat_id,
                f"欢迎新成员!",
                mentioned_list=[user_id]
            )

plugin.on_message = on_message
plugin.start()

示例5:文件管理机器人

from src import create_plugin, WeComMessage
from downloader import MediaDownloader
import os

plugin = create_plugin(
    bot_id="your_bot_id",
    secret="your_secret"
)

downloader = MediaDownloader()

def on_message(msg: WeComMessage):
    if msg.msg_type == "file":
        # 下载文件
        result = downloader.download_from_callback(
            msg.raw_body,
            "./files"
        )

        if result:
            file_path = result['file_path']
            file_size = os.path.getsize(file_path)
            file_ext = result['file_ext']

            # 发送文件信息
            info = f"文件已保存\n"
            info += f"文件名: {os.path.basename(file_path)}\n"
            info += f"大小: {file_size / 1024:.2f} KB\n"
            info += f"类型: {file_ext}"

            plugin.reply_message(msg, info)

plugin.on_message = on_message
plugin.start()

🔍 常见问题

Q1: 如何获取 bot_id 和 secret?

  1. 登录企业微信管理后台
  2. 进入"应用管理" → “智能机器人”
  3. 创建或选择一个机器人
  4. 查看机器人详情获取 bot_id 和 secret

Q2: 视频上传失败,错误码 40011?

原因: 视频不符合企业微信要求

解决方案:

  • 检查视频分辨率(建议 ≤ 1920×1080)
  • 检查视频编码(使用 H.264 + AAC)
  • 检查视频大小(≤ 50MB)
  • 使用 FFmpeg 转换:
    ffmpeg -i input.mp4 -vf scale=1280:720 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
    

Q3: 如何支持更大的文件?

修改 src/__init__.py 中的 MAX_CHUNKS 参数:

MAX_CHUNKS = 200  # 默认100MB
MAX_CHUNKS = 400  # 支持200MB

Q4: 连接频繁断开怎么办?

检查项:

  1. 网络连接是否稳定
  2. 防火墙是否阻止 WebSocket 连接
  3. bot_id 和 secret 是否正确
  4. 查看日志中的错误信息

解决方案:

  • 启用自动重连(默认已启用)
  • 增加心跳间隔
  • 检查服务器时间是否同步

Q5: 如何调试?

启用 DEBUG 日志:

import logging
logging.basicConfig(level=logging.DEBUG)

或在配置文件中:

logging:
  level: DEBUG

查看详细日志:

  • WebSocket 连接状态
  • 消息收发详情
  • 上传下载进度
  • 错误堆栈信息

Q6: 支持哪些消息类型?

类型接收发送说明
文本✅✅支持 @成员
图片✅✅JPG, PNG, GIF
视频✅✅MP4
语音✅❌AMR, MP3
文件✅✅各类文档
卡片❌❌暂不支持

Q7: 如何处理群聊 @ 消息?

def on_message(msg: WeComMessage):
    # 检查是否被@
    if msg.from_user_id in msg.mentioned_list or "@all" in msg.mentioned_list:
        plugin.reply_message(msg, "收到你的@")

Q8: 消息历史如何存储?

默认: 内存存储(重启后丢失)

持久化存储: 可扩展为数据库存储

# 在 handlers.py 中实现
class DatabaseMessageStore(MessageHistoryStore):
    def add_message(self, chat_id, msg):
        # 保存到数据库
        pass

Q9: 如何与 AI 集成?

import openai

def on_message(msg: WeComMessage):
    # 调用 AI API
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": msg.content}]
    )

    ai_reply = response.choices[0].message.content
    plugin.reply_message(msg, ai_reply)

Q10: 性能优化建议?

  1. 异步处理 - 使用线程池处理耗时操作
  2. 消息队列 - 使用队列缓冲消息
  3. 连接池 - 复用 HTTP 连接
  4. 缓存 - 缓存常用数据
  5. 日志级别 - 生产环境使用 INFO 或 WARNING
企业微信AI机器人开发:wecom_aibot_sdk框架实战与优化指南 企业微信机器人开发涉及复杂的消息回调机制,包括消息加解密、签名验证和XML/JSON格式处理。其核心原理是通过封装底层协议,将企业微信的API与业务逻辑解耦,从而简化开发流程。这一技术价值在于显著降低开发门槛,提升集成效率,使开发者能专注于AI模型集成和业务逻辑实现。在实际应用场景中,它广泛用于智能客服、自动化信息查询和团队协作工具。本文以wecom_aibot_sdk为例,深入探讨了如何利用这一SDK框架高效处理企业微信的异步消息和会话管理,并提供了性能调优和常见问题排查的实战经验。 阅读详情

相关推荐

Python实现企业微信应用管理API消息回调功能

企业微信开发中心关于回调配置说明:回调配置 - 接口文档 - 企业微信开发者中心 回调过程需要先实现验证回调接口URL的有效性,然后才是接受消息返回对应内容。详细步骤过程在上述企业微信开发中心有详细说明,接下来说具体实现。 官网给出代码示范接口,gitlab地址:GitHub - sbzhu/weworkapi_python: official lib of wework api https://work.weixin.qq.com/api/doc 具体实现方式用Python3.6+web.py+we

yangwenjie12的博客 5016

【亲测免费】 探索企业级通讯:Wecom SDK - 功能强大且易用的企业微信API库

在数字化办公时代,企业微信已经成为许多组织内部沟通与协作的重要工具。 是一个开源的项目,它提供了一套简单、高效的API接口,使得开发者能够轻松地在自己的应用中集成企业微信的各种功能,让企业的信息流转更加顺畅。 ## 技术分析 Wecom SDK 是基于Python编写的,支持最新的企业微信官方开放接口。它通过封装复杂的HTTP请求和JSON解析,为开发者提供了一个简洁的调用方式。项目的亮点包括...

gitblog_00037的博客 1870

Python 企业微信机器人 Webhook 实战:自动化消息推送全攻略

本文详细介绍了如何使用Python通过企业微信机器人的Webhook接口实现自动化消息推送。从创建机器人、配置Python环境,到实战发送文本、Markdown、图片、文件等六大消息类型,提供了完整的代码示例和最佳实践,帮助开发者高效构建团队通知与业务监控系统。

r2s3t4的博客 721

3000行代码打造可自我进化的GenericAgent框架,多场景应用超便捷!

GenericAgent是一个极简、可自我进化的自主Agent框架。其核心代码仅约3000行,借助9个原子工具和大约100行的Agent Loop,能让任意大语言模型(LLM)对本地计算机实现系统级控制,涉及浏览器、终端、文件系统、键鼠输入、屏幕视觉以及移动设备(ADB)。它秉持不预先加载技能,通过进化获取技能的设计理念。每次GenericAgent解决新任务时,会自动将执行路径固化为一项技能,方便后续直接复用。使用时间越长,积累的技能越多,会形成一棵完全属于你的技能树,这棵树从3000行种子代码发展而来。

safetybug的博客 512

基于Python的企业微信AI机器人SDK开发实战:从原理到部署

企业级即时通讯平台与AI能力的融合,正成为提升工作效率的关键技术路径。其核心原理在于通过API网关实现系统间安全、标准化的数据交换,将大语言模型的自然语言处理能力无缝嵌入工作流。这一技术架构的价值在于,它能够将复杂的底层通信协议、消息加解密和会话管理封装为简洁的开发者接口,极大降低了智能应用开发的门槛。在应用场景上,它广泛服务于智能客服、内部知识问答、自动化流程触发等企业级需求。本文聚焦的 `wecom_aibot_sdk` 项目,正是这一理念的工程实践典范,它通过模块化设计,封装了企业微信的 **Acce

weixin_26757949的博客 587

蓝桥杯FPGA赛道积分赛

代码如下: 按键驱动 代码如下 按键驱动 代码如下: 顶层文件 按键驱动 数码管驱动 声明:本代码借鉴网络资料,如有侵权和错误请联系作者删除。我是从寒假开始备赛的,由于我基础不行,备赛过程中也是混混呃呃的,备赛效率不高,总体来说备赛不认真,有点拖拉,但是最后我也坚持备赛到了今天,在备赛过程中,即复习了旧的东西,也学到了新的东西,总结起来还是有点收获的,后天北京、天津、河北地区就要进行省赛了,我会全力以赴,不管结果怎么样,尽力就好,最后祝大家都能

weixin_69804913的博客 1953

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

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

li-xun的博客 3956

使用 Python 和可视化编程控制树莓派机械臂myCobot

这些模块包括逻辑、循环、数学、文本、列表、颜色、变量、函数以及控制机械臂的函数等等,所以用户可以轻松入门编程,只需单击右上角的运行就可以启动程序,做一些有趣的应用。可以搭配任意摄像头进行图像识别,具有4个 USB 端口,可以通过 Raspberry Pi 的微型 HDMI 端口连接到显示器. 最后,40 个GPIO 接头可以进行更多扩展应用,机械臂每个接口都有清晰的标记,面板上还有一个电源开关和一个直流电源插孔。您现在可以将机器人放在地板或桌子上,并用力拧紧吸盘,以确保机械臂的底座在操作过程中不会移动。

m0_62456998的博客 3953

企业微信Python SDK:高效群发消息实战

本文介绍了QiWe开放平台SDK的核心实现逻辑,主要包括AccessToken管理和外部群消息发送两大功能模块。在鉴权方面,SDK自动处理Token的获取与刷新,采用缓冲机制提前更新,并通过分布式锁防止并发问题。消息发送功能封装了底层异步执行细节,支持文本消息的主动发送。SDK的稳定性依赖于平台的流量治理和熔断机制,确保系统鲁棒性。文章提供了Python实现示例,并建议参考官方技术文档获取详细错误码和最佳实践。

2501_94198205的博客 533

库卡kuka仿真软件sim Pro 3.1简单实用教程

实验目的 建立机器人,自定义抓手,导入外部模型,掌握工具坐标、基坐标的使用,自动生成轨迹。 实验步骤 打开KUKA.Sim Pro 3.1.2仿真软件,依次点击KUKA Sim Library 3.1 → KUKA_ROBOTS→Small Robots(3kg-10kg)→Archiv→AGILUS-1 Series→sixx,双击KR 6 R700 sixx,加载机器臂到工作空间; 加载自定义抓手。双击Miscellaneous,再双击圆锥Cone设置上半径为0,下半径为40,高为100; 点击“捕

weixin_45168199的博客 4万+

NVIDIA Isaac Sim 入门教程(二)

Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(现在工作区中应该会出现一个名为 "视口 2 "的新视口。如果您想创建更多的视口,请按照相机检查器扩展进行操作。单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。单击并向左拖动视口 2 的左侧,使视口大小相等。

机器人控制与仿真应用 6537

python项目开发计划_开源项目 | 企业微信第三方Python SDK项目启动计划

各位知友大家好!我是量潮科技创始人 @iGuo ,这篇文章和大家分享我们公司目前的一些技术进展和一些开源项目的规划。在技术方面,我们目前还处在搭建平台的早期阶段;在架构完善以后,我会专门写一篇文章介绍量潮应用系统的设计思路和实现方案。在这个过程中,我们需要使用大量腾讯系( @腾讯 )的API和SDK,包括腾讯云( @腾讯云 @腾讯云技术社区 )、微信公众号( @微信 )、微信小程序、微信开放平台、...

weixin_39615956的博客 291

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

WW、forever的博客 552

微信企业号API SDK Python3版

#!/usr/bin/python3 # -*- coding: utf-8 -*- #微信企业号API Python3版 import time,datetime import hashlib,hmac import urllib.request,urllib.parse import json,sys class WXQY: # corpid = "wx82e2c31215d9...

比特量化 720

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

4650

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值)【含Matlab源码 4887期】

斑马算法优化变分模态分解ZOA-VMD数字信号去噪(优化K值 alpha值) 完整的代码,包运行;运行操作视频见CSDN资源!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 806

还能用的Python微信库?

微信官方提供的Python SDK是接入微信开放平台的首选工具。它提供了全面的API接口,涵盖了从基础的消息处理到复杂的支付、卡券等功能。werobot是一个轻量级的微信机器人框架,由国人开发,社区活跃,文档完善。它专注于处理微信公众号的消息和事件,适合快速开发简单的微信应用。itchat是一个非官方的微信个人号接口库,支持通过微信网页版进行登录和操作。它非常适合用于个人项目和小型应用。wxpy是基于itchat的二次封装库,提供了更简洁的API和更多的高级功能。它适合需要更高层次抽象和更强大功能的项目。

cda2024的博客 3858

科研绘图系列:R语言绘制差异蝴蝶图(Butterfly Chart)

科研绘图系列:R语言蝴蝶图(Butterfly Chart)

专注生信领域 1379

Python进行企微回调详细步骤

Python进行企微回调详细步骤 随着企业数字化工作的推进,越来越多的企业开始使用企业微信(企微)作为内部沟通及外部服务的一种工具。企微不仅支持基本的聊天功能,更通过API接口提供了丰富的回调能力和自动化处理能力。本文将详细介绍如何使用Python进行企微回调,并提供代码示例,帮助开发者快速上手。 1. 什么是企微回调? ...

weixin_40343481的博客 709

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

企业微信群机器人SDK Python版

企业微信群机器人SDK Python版 #!/usr/bin/python3 # -*- coding: utf-8 -*- #微信企业号API Python3版 import time,datetime import requests import json class WXQY: apiurl = "https://qyapi.weixin.qq.com/cgi-bin/" def __init__(self): pass # 发送消息,群机器人

比特量化 1100

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

2025年最新的Python操控企业微信教程

在GitHub上有一个项目叫《vworkApi》它是基于PC端的企业微信HOOK封装的、REST风格的接口,开发者可通过。可进行二次开发,实现微信机器人、群管理等强大的功能!

weixin_44678558的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python 微信开发入门篇JS SDK 含微信支付(二)

本节完成微信js sdk + 微信支付调用,项目基础部分请参照入门篇第一章:https://www.cnblogs.com/wangcongxing/p/11546780.html 1.微信服务号设置    登录服务号后台设置如下:    1.登录地址:https://mp.weixin.qq.com/    2.设置-->公众号设置-->功能设置      2.微信商户后台设置   登录微信支付平台设置如下:    1.登录地址(因为需要安装exe插件, 设...

枫小秋 的博客 1417

python企业微信回调_微信企业号开发:开启回调模式/Python判断信息-回复指定内容示例代码...

1 注册微信企业号的步骤就省略了。很简单。选择下面的应用中心,企业小助手,选择回调模式。选择随机生成token AESKEY。地址输入你的服务器地址。选择设置,新建管理组,然后就能看到COPID和Secret把上面的4个参数,写到下面的文件里面。python3 -m pip install itchatmp ###python3安装模块具体可百度itchatmp官方文档vim main...

weixin_39607935的博客 467

Python构建企业微信智能应答机器人(含服务器部署)

目标是开发一个简易机器人,能接收消息并作出回复

XerCis的博客 1万+

把 AI 小助手接入企业微信:用一个回调接口做群聊机器人实战篇

本文介绍如何将现有AI服务快速接入企业微信,使其成为群聊机器人。通过添加一个轻量级适配层,在不改动原有AI核心逻辑(/v1/chat接口)的前提下,实现企业微信消息与企业AI服务的对接。具体步骤包括:1)在企业微信后台创建应用并配置回调URL;2)使用wechatpy库处理消息加解密;3)编写适配器转发用户消息至AI服务并返回响应。该方法仅需新增一个适配文件,通过Nginx反向代理暴露公网接口即可完成部署,使员工能直接在群聊中@机器人使用AI服务,大幅提升使用频率。文章还提供了故障排查清单和进阶扩展建议。

qq_21103417的博客 2571

终于!企业微信官方终于支持 OpenClaw了(创建“长连接”智能机器人)

企业微信官方现已原生支持OpenClaw智能机器人,通过"长连接"模式实现快速接入。相比传统需要配置Token、回调URL等复杂参数的插件方案,新方案仅需Bot ID和Secret即可完成配对,具有配置简单、连接稳定、支持主动推送等优势。接入步骤包括创建长连接机器人、安装插件、配对验证等,大幅降低了使用门槛。该方案无需公网IP或防火墙配置,由官方直接支持,适合需要智能对话、定时提醒等场景的企业用户。

qq_40600379的博客 2327
上一篇: 企业微信机器人访问控制策略详解
下一篇: 基于[ClaudeCode]源码魔改重建深度集成微信消息桥使微信用户可直接与 Claude 对话,Claude 也可主动向微信用户发送文字、图片和文件
@Ma
@Ma
博客等级 码龄8年 170粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Ma

您的鼓励就是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值