从零搭建Clawdbot+企微机器人:单向推送全流程指南(新手可玩)

从零搭建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 

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

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

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

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等技能文件),说明为系统级技能目录(本文默认此目录)

3. 部署技能脚本

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


sudo cat > /usr/local/nodejs/lib/node_modules/clawdbot/skills/wecom_webhook.py << 'EOF'import requestsimport jsonimport osfrom pathlib import Pathfrom 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"} * * * * * * * * 
  1. 发送测试消息(文本格式):
    • run wecom_send content=“终于能推送啦!Clawdbot→企微群”

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

 * * 
  1. 进阶测试(Markdown格式,支持加粗、标题、列表):
    • run wecom_send content=“### 🚀 Clawdbot推送通知\n核心功能:\n- 文本消息推送\n- Markdown格式支持\n> 新手也能轻松上手” msg_type=“markdown”

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

 * * 

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

  1. 定时推送 :结合Clawdbot定时技能,实现每日日报、定时告警,命令示例:
    • run schedule add --cron “0 9 * * *” --command “run wecom_send content=‘每日早报:今日工作安排’”

(每天9点推送)。

 * * 
  1. 多群推送 :修改脚本支持多Key配置,实现同时推送到多个企微群(文末可留言获取多群脚本)。
  2. 双向对话 :若为企微管理员,可创建自建应用,用Webhook+事件订阅实现企微消息回调到Clawdbot,支持双向交互。

五、总结

本文通过「安装Clawdbot→创建企微机器人→部署脚本→测试推送」四步,实现了Clawdbot到企微群的单向推送,全程无需复杂开发,命令可直接复制。适合办公场景中的自动化通知、告警、内容分发需求,非技术背景用户也能快速落地。

若需进阶功能(多群推送、定时任务、双向对话),可留言说明需求,后续将针对性补充教程。动手试试,让AI机器人帮你解放双手吧!


第三方的白嫖地址我收集了几个,各位自行取用:
UniVibe:https://www.univibe.cc/console/auth?type=register&invite=MB8LFU
XXAPI: https://api.gemai.cc/register?aff=X1PG
GLM Coding :https://www.bigmodel.cn/glm-coding?ic=A9HPQXTXSF

Read more

【数据结构-初阶】顺序表相关习题

【数据结构-初阶】顺序表相关习题

🎈主页传送门:良木生香 🔥个人专栏:《C语言》 《数据结构-初阶》 《程序设计》 🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 上期回顾:在上一篇文章中(【数据结构-初阶】详解线性表(1)---顺序表),我们详细介绍了线性表系列第一种数据结构---顺序表,这个数据结构是以数组为底建立的,也学习了如何用线性表进行增删查改的操作,那么我们今天就用顺序表进行解题~~~   题目一:移除元素 这是题目链接:27.移除元素,下面是具体的题目与示例: 由题意知,这道题是想让我们将数组中值为val的元素删除,我们能怎么做呢? 创建新的数组?那不行,题目已经要求我们只能在原地进行操作了,就意味着不能创建新的数组来进行辅助 那该怎么办呢?简单,我们只需用上算法中最基础的---双指针算法了 我们用双指针,不一定用真的指针指向某个元素,有时也可以用下标,讲究的是一种算法思想,并没有一定的形式 我们用两个指针,刚开始都同事之下那个num数组的第一个元素,随后将其中一个指针用于遍历数组,如果两个指针指向的内容不相同,那就将内容进行交换,两个指针同时向后移动一位;如果相同

By Ne0inhk
[算法]——链表(三)

[算法]——链表(三)

目录 编辑 一、前言 二、正文 1.重排链表 1.1 题目解析 1.2 算法原理 1.3 具体代码 2.K个一组翻转链表 2.1 题目解析 2.2 算法原理 2.3 具体代码 三、结语 一、前言         本文将继续为大家带来链表的学习!!! 二、正文 1.重排链表 1. 重排链表 - [力扣] 1.1 题目解析         本题要求要求我们对所给链表进行重排,那么观察题目所给示例,我们会发现所谓重排后的链表,就是先头结点,尾结点,然后头结点的下一个节点,

By Ne0inhk
【C语言】排序算法——快速排序详解(含多种变式)!!!

【C语言】排序算法——快速排序详解(含多种变式)!!!

【C语言】排序算法——快速排序详解(含多种变式)!!! * 前言 * 一 、快速排序(初阶) * 1. 视频演示 * 2. 算法思想 * 3. 实现思路 * (1)定key值 * (2)大小交换 * (3)循环 * (4)交换key * (5)分割区间 * (6)结束 * 4. 实现代码 * 二 、快速排序(中阶) * 1. 存在的问题 * 2. 优化(三数取中) * 3. 实现代码(中阶) * 三 、快速排序(高阶) * 1. 仍存在的问题 * 2. 优化(小区间优化) * 3. 实现代码(高阶)

By Ne0inhk
《算法题讲解指南:优选算法-分治-归并》--47.归并排序,48.数组中的逆序对

《算法题讲解指南:优选算法-分治-归并》--47.归并排序,48.数组中的逆序对

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--优选算法 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 47.归并排序 题目链接: 题目描述: 题目示例: 解法(归并排序): 算法思路: C++算法代码: 算法总结及流程解析: 48.数组中的逆序对 题目链接: 题目描述: 题目示例: 解法(利用归并排序的过程——分治): 算法思路: C++算法代码: 算法总结及流程解析: 结束语 47.归并排序 题目链接: 215. 数组912. 排序数组 - 力扣(LeetCode)215.

By Ne0inhk