钉钉Webhook机器人如何发送群消息?

钉钉Webhook机器人如何发送群消息?

在钉钉中通过 Webhook 机器人发送消息的步骤如下:

一、创建自定义机器人

  1. 进入群设置

    • 打开钉钉群 → 点击右上角「设置」→「群管理」
  2. 添加机器人

    • 点击 机器人 ->「添加机器人」→ 选择「自定义」
    • 点击「添加」
  3. 获取Webhook地址

    • 创建完成后复制 Webhook URL

设置成功后如下:

二、发送消息示例

1. 基础文本消息

python 复制代码
import json
import requests

url = "你的Webhook地址"

headers = {"Content-Type": "application/json"}
data = {
    "msgtype": "text",
    "text": {
        "content": "监控报警:服务器CPU使用率超过90%"
    }
}

response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())

2. Markdown格式消息

python 复制代码
data = {
    "msgtype": "markdown",
    "markdown": {
        "title": "项目更新",
        "text": "### 项目进度报告\n- **任务**:API开发\n- **状态**:✅ 已完成\n- **负责人**:张三\n- [查看详情](http://example.com)"
    }
}

3. 带@提醒的消息

python 复制代码
data = {
    "msgtype": "text",
    "text": {
        "content": "@张三 请处理紧急工单"
    },
    "at": {
        "atMobiles": ["13888888888"],  # 手机号
        "atUserIds": ["user123"],      # 用户ID
        "isAtAll": False               # 是否@所有人
    }
}

4. 链接消息

python 复制代码
data = {
    "msgtype": "link",
    "link": {
        "text": "这是一条链接消息", 
        "title": "系统通知",
        "picUrl": "https://img.example.com/1.jpg",
        "messageUrl": "https://www.example.com"
    }
}

5. ActionCard(按钮卡片)

python 复制代码
data = {
    "msgtype": "actionCard",
    "actionCard": {
        "title": "审批通知",
        "text": "### 请假申请\n申请人:李四\n时间:2024-01-01",
        "btns": [
            {
                "title": "同意",
                "actionURL": "http://example.com/approve"
            },
            {
                "title": "拒绝", 
                "actionURL": "http://example.com/reject"
            }
        ]
    }
}

三、安全设置处理

加签验证

python 复制代码
import time
import hmac
import hashlib
import base64
import urllib.parse

timestamp = str(round(time.time() * 1000))
secret = "你的加签密钥"
secret_enc = secret.encode('utf-8')
string_to_sign = f'{timestamp}\n{secret}'
string_to_sign_enc = string_to_sign.encode('utf-8')

hmac_code = hmac.new(secret_enc, string_to_sign_enc, 
                     digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote(base64.b64encode(hmac_code))

# 将timestamp和sign添加到URL
webhook_url = f"{原URL}&timestamp={timestamp}&sign={sign}"

四、使用 cURL 示例

bash 复制代码
curl '你的Webhook地址' \
  -H 'Content-Type: application/json' \
  -d '{
    "msgtype": "text",
    "text": {
        "content": "测试消息"
    }
  }'

注意事项

  1. 频率限制:每分钟最多20条消息
  2. 消息长度:文本消息不超过5000字符
  3. 关键词匹配:如果设置了关键词,消息中必须包含
  4. 错误处理:建议添加重试机制和错误日志
  5. 敏感信息:不要在消息中暴露敏感数据

调试建议

  • 使用钉钉官方提供的调试工具
  • 先发送测试消息验证配置
  • 检查返回的状态码和错误信息

这样你就可以通过钉钉Webhook机器人发送各种类型的消息了!

相关推荐
workflower2 小时前
智能无人机成低空经济核心赛道
运维·人工智能·机器学习·机器人·云计算·无人机
IT小盘3 小时前
23-Agent和普通聊天机器人有什么区别
机器人
_张一凡4 小时前
【论文解读】VLN-R1:让大视觉语言模型直接吃第一人称视频走出连续动作,用 GRPO 强化微调和时间衰减奖励把“导航“做成 LVLM 的可验证后训练任务
机器人·具身智能·vla·世界模型
爱学堂IT分享4 小时前
AI自动化大师课:从零构建企业级工作流程
大数据·人工智能·自动化
DeepVisionary4 小时前
从微软砍掉Copilot的AI播客、Deep Research看AI产品“做减法“:个人版与企业版合并,超级应用呼之欲出
python·自动化
迷途之人不知返5 小时前
自动化工程的构建
linux·自动化
M-Robots echo13 小时前
轻量化裁剪方案解析:M-Robots 模块化构建,适配高低端各类机器人硬件平台
java·机器人·ros·开源社区·atomgit·m-robots
tianxuanjg14 小时前
0.005mm 高精度 CNC 加工:机器人薄壁复杂零件变形控制与全维度品控方案
经验分享·机器人·无人机·制造·材质
企鹅的企14 小时前
2027北京AI数字健康与智慧医疗展官方:超两成展品亚洲首秀
人工智能·科技·机器人
消失的旧时光-194316 小时前
第 7 篇:服务机器人为什么需要处理多种控制入口?LOCAL、REMOTE、AUTO 与 MAINTENANCE
机器人·remote·controlarbiter