II. 频道系统 - 5. Signal
📍 课程位置
阶段:II. 频道系统
课序:第 5 课
前置知识:II-4. Slack
后续课程:II-6. iMessage
🎯 本课核心问题(你不懂我就这样教你)
Signal 接入的典型困惑:
Signal 不是开放平台,我怎么接 Bot?
signal-cli 是什么?为什么要用它?
注册/绑定流程为什么这么"麻烦"?
怎么保证安全,不让任何人都能随便给我发命令?
一句话回答:
OpenClaw 的 Signal 通道一般依赖 signal-cli 作为"桥",它代表一个 Signal 账号收发消息。
🧠 心智模型:Signal = "用命令行客户端模拟一个账号"
类比:
Telegram/Slack/Discord:官方给你 Bot 平台(token)
Signal:没有官方 bot 平台
所以我们用 signal-cli 让一台机器"登录一个 Signal 账号",再由 OpenClaw 驱动它收发
这就像:
你没有 API,只能找一个"代聊手机"登录账号,然后让程序控制它。
✅ 验收标准
\] signal-cli 已安装并可运行 \[ \] signal-cli 已注册并绑定到某个号码 \[ \] OpenClaw Signal 通道能收消息 \[ \] 能回消息 \[ \] 配好 dmPolicy(pairing/allowlist)确保安全 🔧 第一步:准备 signal-cli 你需要先确保环境里有 signal-cli(具体安装方式以官方/平台文档为准)。 验证: signal-cli --version 🔧 第二步:注册/绑定 Signal 账号(核心步骤) Signal 的"机器人账号"本质上就是一个普通号码。 典型流程: 使用 signal-cli 注册(会发验证码) 输入验证码完成验证 绑定成功后,signal-cli 能代表这个号码收发消息 注意:注册过程会涉及短信/语音验证,可能需要你人工协助一次。 🔧 第三步:在 OpenClaw 配置启用 Signal 在 \~/.openclaw/openclaw.json: { channels: { signal: { enabled: true, // 这里通常需要告诉 OpenClaw signal-cli 在哪、用哪个号码 // 字段名以官方文档为准(不同版本可能略有差异) number: "+86xxxxxxxxxxx", // 安全策略(最重要) dmPolicy: "pairing", // pairing | allowlist | open | disabled allowFrom: ["sig:+86yyyyyyyyyyy"], } } } 建议:如果你只给自己用,直接 allowlist 最稳。 🧩 安全建议:Signal 一定要做"最小入口" 因为 Signal 不是 bot 平台,而是"真实账号",所以更要谨慎: dmPolicy 推荐 `pairing` 或 `allowlist` 不要 open 群聊场景更要谨慎(能不用群就别用群) ⚠️ 常见坑与排查 | 现象 | 常见原因 | 排查 | |-------|--------------------|---------------------| | 收不到消息 | signal-cli 未登录/未绑定 | 先用 signal-cli 自测 | | 发不出去 | 账号被封/网络问题 | 检查 signal-cli 日志 | | 注册失败 | 验证码/频控 | 换短信/语音;稍后重试 | | 乱入风险 | dmPolicy=open | 改 pairing/allowlist | 📝 学习心得 Signal 这章的关键不是"字段多",而是: 它不是标准 bot 平台 你是在"运营一个账号" 因此我给的建议是: 先让 signal-cli 自测收发 OK 再接入 OpenClaw 安全优先:allowlist/pairing ✅ 本课总结(记住 5 句话) Signal 通道通常依赖 signal-cli 来"模拟一个登录账号"。 先让 signal-cli 自测跑通,再接 OpenClaw。 Signal 的账号就是普通号码,注册/验证需要人工一次。 安全优先:dmPolicy 用 pairing/allowlist,不要 open。 排障先看 signal-cli 是否能独立收发,再看 OpenClaw 配置。 🔗 相关资源 官方文档:https://docs.openclaw.ai/channels/signal 配置参考:https://docs.openclaw.ai/gateway/configuration-reference 下一课:II-6. iMessage