🔔 OpenClaw 钉钉集成教程

让AI机器人入驻钉钉,自动化群消息和审批流

导读:还在钉钉群里手动转发AI日报?让OpenClaw直接在钉钉群里当你的AI助手。本教程从创建钉钉机器人到完整集成,10分钟搞定。

📋 功能介绍

OpenClaw钉钉集成支持以下能力:

🔧 配置步骤

Step 1: 创建钉钉机器人

  1. 打开钉钉 → 群设置 → 智能群助手 → 添加机器人
  2. 选择"自定义"机器人
  3. 设置机器人名称(如"妙趣AI")
  4. 安全设置选择"自定义关键词"或"加签"
  5. 复制Webhook地址
# 钉钉Webhook格式
https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN

# 安全设置 - 关键词模式
# 配置关键词如 "AI"、"日报"、"妙趣"
# 消息中必须包含至少一个关键词才能发送

Step 2: OpenClaw配置

# ~/.openclaw/config.yaml
channels:
  dingtalk:
    enabled: true
    webhook: "https://oapi.dingtalk.com/robot/send?access_token=xxx"
    secret: "SEC_YOUR_SECRET"  # 加签密钥
    keyword: "AI"  # 关键词安全模式

# 或通过环境变量
export DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=xxx"
export DINGTALK_SECRET="SEC_YOUR_SECRET"

Step 3: 发送消息

# 发送文本消息
openclaw message send \
  --channel dingtalk \
  --target "group_webhook" \
  --message "📰 AI日报已更新,请查看 https://miaoquai.com/news/"

# 发送Markdown消息
openclaw message send \
  --channel dingtalk \
  --msg-type markdown \
  --title "今日AI热点" \
  --message "### 🔥 热点新闻\n- OpenClaw发布新版本\n- AI Agent市场增长200%"

# 通过脚本批量发送
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "msgtype": "markdown",
    "markdown": {
      "title": "AI日报",
      "text": "# 📰 今日AI热点\n\n内容..."
    }
  }' \
  "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"

Step 4: 配置定时推送

# 每天早上9点推送日报到钉钉群
openclaw cron add \
  --name "dingtalk-daily" \
  --schedule "0 9 * * *" \
  --timezone "Asia/Shanghai" \
  --task "生成今日AI日报并发送到钉钉群"

# 每周一推送周报
openclaw cron add \
  --name "dingtalk-weekly" \
  --schedule "0 9 * * 1" \
  --timezone "Asia/Shanghai" \
  --task "汇总本周AI行业动态,生成周报发送到钉钉群"

💡 最佳实践

🎯 消息频率控制:钉钉群消息不宜太频繁。建议日报1次/天,热点追踪不超过3次/天。太频繁会被群主踢出去。
🔑 安全建议:使用"加签"模式比"关键词"模式更安全。加签模式需要计算签名,防止Webhook被滥用。
# 加签计算示例(Python)
import hmac
import hashlib
import base64
import time
import urllib.parse

def sign(secret):
    timestamp = str(round(time.time() * 1000))
    string_to_sign = f'{timestamp}\n{secret}'
    hmac_code = hmac.new(
        secret.encode('utf-8'),
        string_to_sign.encode('utf-8'),
        digestmod=hashlib.sha256
    ).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
    return timestamp, sign

# 使用
timestamp, sign = sign("SEC_YOUR_SECRET")
url = f"https://oapi.dingtalk.com/robot/send?access_token=xxx×tamp={timestamp}&sign={sign}"

🚨 常见问题

❌ 消息发送失败:最常见的原因是关键词不匹配或签名错误。检查钉钉机器人安全设置,确保消息内容包含配置的关键词。

📊 支持的消息类型

类型msgtype适用场景
文本text简单通知
Markdownmarkdown格式化内容
链接link分享链接
ActionCardactionCard带按钮的卡片
FeedCardfeedCard多链接列表

🔗 相关链接

🔗 相关推荐

📄 文章
OpenClaw 入门指南
📄 文章
OpenClaw 完全教程
📄 文章
OpenClaw 最佳实践
📄 文章
OpenClaw 自动化工作流
📄 文章
OpenClaw 配置详解

📚 相关推荐阅读

📄 文章
OpenClaw 入门
📄 文章
AI Agent
📄 文章
自动化工作流
📄 文章
定时任务