从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

本文为非管理员用户提供一份可复制指南,详解通过Clawdbot向企业微信群机器人实现单向自动推送的每一步,包括安装、配置、部署脚本及测试,新手也能快速上手。

本文针对非管理员用户(无企微后台权限),详细拆解从Clawdbot安装到企微机器人正常推送的全步骤,所有命令可直接复制,新手也能快速上手。

一、前置说明(必看)

1. 适用场景

非企微管理员,仅能创建「企微群机器人」,实现 Clawdbot→企微群单向推送(无法接收企微消息回复,适合通知、告警、播报场景);若为管理员,可进一步实现双向对话(文末附拓展方向)。

2. 环境要求

支持 Mac/Linux/Windows(本文以Linux为例),需联网且能访问公网(企微Webhook需外部请求),最好直接就是美西的机器。

3. 核心工具

Clawdbot(AI机器人框架)、企微群机器人(Webhook)、Python依赖(requests库)。


二、安装步骤

第一步:安装Clawdbot(基础环境搭建)

Clawdbot支持一键安装,全程在系统终端操作,无需复杂配置。

1. 一键安装Clawdbot

打开终端,复制以下命令执行(Mac/Linux通用):

curl -fsSL https://clawd.bot/install.sh | bash
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

2. 初始化Clawdbot(关键步骤)

安装完成后,终端会自动进入初始化流程,按以下选项依次选择:

  • Select workspace:默认即可(路径为 ~/clawd),按回车确认。
  • Select model:推荐选国产模型(如Qwen),新手直接选 qwen-portal/coder-model(无需额外配置API密钥)。
  • 授权登录 Qwen,等待一段时间后,出现下面第一张图的鼠标选中的内容,复制网页到浏览器打开
  • Select channel (QuickStart):选 Skip for now(企微不在预设通道,后续自定义对接),按空格键勾选后回车。
  • Configure skills now?:选 No(先打通推送,后续再配置技能),按空格键勾选后回车。
  • Enable hooks?:选 Skip for now(无需钩子功能),按空格键勾选后回车。
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

3. 退出TUI(后续配置需用到终端)

在TUI界面按 Ctrl+C 退出,回到系统终端(后续修改配置、部署脚本需在此操作)。

第二步:创建企微群机器人(获取Webhook Key)

无需管理员权限,仅需为企微内部群创建机器人,获取推送所需的Webhook Key。

1. 打开企微,进入目标内部群(外部群不支持机器人),点击右上角 … → 找到 消息推送 → 点击 自定义消息推送。

2. 点击 新建机器人,输入机器人名称(如Clawdbot)、选择头像,点击 完成。

3. 创建成功后,会生成专属Webhook地址,复制该地址中的 Key部分(示例地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=123456-abcdef-7890,Key即为 123456-abcdef-7890),保存备用(后续需用到)。

第三步:部署企微推送技能脚本(核心对接)

Clawdbot需通过自定义技能脚本对接企微Webhook,本文提供优化版脚本(支持配置文件存储Key,兼顾安全与易用),直接复制部署即可。

1. 安装依赖库

终端执行以下命令,安装脚本所需的requests库:

pip install requests

2. 确认Clawdbot技能目录

不同安装方式的技能目录不同,先执行命令确认目录(终端执行):

#查看技能目录是否存在

ls /usr/local/nodejs/lib/node_modules/clawdbot/skills/

若显示目录内容(如bluebubbles、github等技能文件),说明为系统级技能目录(本文默认此目录)

从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

3. 部署技能脚本

终端执行以下命令,一键在正确目录生成脚本(系统级目录为例):


sudo cat > /usr/local/nodejs/lib/node_modules/clawdbot/skills/wecom_webhook.py << 'EOF'
import requests
import json
import os
from pathlib import Path
from clawdbot_skill import BaseSkill, register_skill
# 配置文件路径(存储企微Key,自动创建)
CONFIG_PATH = Path.home() / ".clawdbot" / "wecom_config.json"
# 初始化配置文件(首次运行自动生成)
def init_config():
    if not CONFIG_PATH.parent.exists():
        CONFIG_PATH.parent.mkdir(parents=True, exist_ok=True)
    if not CONFIG_PATH.exists():
        with open(CONFIG_PATH, "w", encoding="utf-8") as f:
            json.dump({"webhook_key": ""}, f)
# 读取配置文件
def get_config():
    init_config()
    with open(CONFIG_PATH, "r", encoding="utf-8") as f:
        return json.load(f)
# 写入配置文件(存储Key)
def set_config(key: str, value: str):
    config = get_config()
    config[key] = value
    with open(CONFIG_PATH, "w", encoding="utf-8") as f:
        json.dump(config, f, indent=2)
# 技能1:设置企微Webhook Key(仅需执行一次)
@register_skill(name="wecom_set_key", description="Set WeCom webhook key (only once)")
class WeComSetKeySkill(BaseSkill):
    def run(self, webhook_key: str):
        set_config("webhook_key", webhook_key)
        # 自动设置安全权限(仅当前用户可读)
        os.chmod(CONFIG_PATH, 0o600)
        return f"✅ 企微Key已保存!(已自动开启安全权限)"
# 技能2:发送消息到企微群(核心功能)
@register_skill(name="wecom_send", description="Send message to WeCom group (text/markdown)")
class WeComWebhookSkill(BaseSkill):
    def run(self, content: str, msg_type: str = "text"):
        # 读取已保存的Key
        config = get_config()
        webhook_key = config.get("webhook_key", "")
        if not webhook_key:
            return "❌ 请先设置Key:run wecom_set_key webhook_key='你的Key'"

        # 拼接企微Webhook地址
        url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={webhook_key}"
        # 构造消息体(支持文本/Markdown)
        data = {"msgtype": msg_type, msg_type: {"content": content}}

        try:
            # 发送请求
            resp = requests.post(url, json=data, timeout=10)
            result = resp.json()
            if result["errcode"] == 0:
                return f"✅ 推送成功!"
            else:
                return f"❌ 推送失败:{result['errmsg']}(错误码:{result['errcode']})"
        except Exception as e:
            return f"❌ 网络/未知错误:{str(e)}"
EOF

4. 给脚本加权限+重启Clawdbot

终端执行命令,确保脚本可被Clawdbot加载,同时重启生效:

# 给脚本加执行权限
sudo chmod 755 /usr/local/nodejs/lib/node_modules/clawdbot/skills/wecom_webhook.py
# 重启Clawdbot,加载新技能
clawdbot restart

第四步:测试推送(验证全流程)

进入Clawdbot TUI,执行简单命令即可测试推送,步骤如下:

1. 终端执行命令,进入TUI:

clawdbot tui 

2. 在TUI输入框执行命令,设置企微Key(替换为第二步保存的Key,仅需执行一次):

run wecom_set_key webhook_key="你的企微机器人Key"  

若提示 ✅ 企微Key已保存!,说明Key配置成功。 也可以不要这个步骤, 直接在~/.clawdbot/wecom_config.json配置文件中配置好:

{
  "webhook_key": "这里填你的企微群机器人Webhook Key"
}

3. 发送测试消息(文本格式):

run wecom_send content="终于能推送啦!Clawdbot→企微群"  
从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

若提示 ✅ 推送成功!,同时企微群收到该消息,说明全流程打通。

4. 进阶测试(Markdown格式,支持加粗、标题、列表):

run wecom_send content="### 🚀 Clawdbot推送通知\n**核心功能**:\n- 文本消息推送\n- Markdown格式支持\n> 新手也能轻松上手" msg_type="markdown" 

企微群会显示带样式的消息。

从零搭建Clawdbot对接企微机器人:实现单向消息推送的完整教程

三、进阶拓展方向(按需选择)

1. 定时推送:结合Clawdbot定时技能,实现每日日报、定时告警,命令示例:

run schedule add --cron "0 9 * * *" --command "run wecom_send content='每日早报:今日工作安排'"

每天9点推送)。

2. 多群推送:修改脚本支持多Key配置,实现同时推送到多个企微群(文末可留言获取多群脚本)。

3. 双向对话:若为企微管理员,可创建自建应用,用Webhook+事件订阅实现企微消息回调到Clawdbot,支持双向交互。

转载作品,原作者:孔孔的成长笔记,文章来源:https://mp.weixin.qq.com/s/XXRNw2scOD5wUlZHlBIZrQ

(0)
打赏 微信赞赏 微信赞赏 支付宝赞赏 支付宝赞赏
宝塔面板一键部署Clawdbot:从安装、配置Moonshot API到开启HTTPS
上一篇 2026-01-29 15:06
Clawdbot(Moltbot)接入钉钉全攻略:手把手实现本地AI对话机器人
下一篇 2026-01-30 13:52

相关推荐

发表回复

登录后才能评论
扫码了解
扫码了解
反馈建议
分享本页
返回顶部