消息配置
暂无机器人配置,请在下方添加
注意:钉钉机器人有频率限制(每分钟最多20条),请合理设置发送间隔
✅
发送成功
消息已成功发送至钉钉机器人
机器人配置
支持配置多个钉钉机器人,如只需要一个机器人,其他配置留空即可。
机器人 1
从钉钉机器人设置页面复制的access_token部分
如未设置加签,则留空即可
Worker 代理设置指南
步骤 1: 创建 Cloudflare 账户
访问 Cloudflare 注册页面 创建免费账户(无需信用卡)
步骤 2: 创建 Workers 代理
登录后访问 Workers 控制台,点击 "Create a Worker"
步骤 3: 配置 Worker 代码
将Worker 代码复制到编辑区域,然后点击 "Save and Deploy"
步骤 4: 获取 Worker URL
记下生成的 URL(格式: https://your-worker.your-subdomain.workers.dev)
步骤 5: 配置前端
在下方输入您的 Worker URL,然后保存
这是您在 Cloudflare 创建的 Worker URL
Worker 代码
// 复制以下代码到 Cloudflare Workers
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// 处理 CORS 预检请求
if (request.method === 'OPTIONS') {
return new Response(null, {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Max-Age': '86400'
}
});
}
// 只接受 POST 请求
if (request.method !== 'POST') {
return new Response('Method not allowed', {
status: 405,
headers: { 'Access-Control-Allow-Origin': '*' }
});
}
try {
const { token, sec, message } = await request.json();
// 验证必要参数
if (!token) {
return new Response(JSON.stringify({
error: 'Missing token parameter'
}), {
status: 400,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}
});
}
// 构建钉钉 Webhook URL
let url = `https://oapi.dingtalk.com/robot/send?access_token=${token}`;
// 如果有 sec 密钥,生成签名
if (sec && sec.trim() !== '') {
const timestamp = Date.now();
const secret = sec.trim();
const stringToSign = `${timestamp}\n${secret}`;
// 生成签名
const encoder = new TextEncoder();
const keyData = encoder.encode(secret);
const messageData = encoder.encode(stringToSign);
const cryptoKey = await crypto.subtle.importKey(
'raw',
keyData,
{ name: 'HMAC', hash: 'SHA-256' },
false,
['sign']
);
const signature = await crypto.subtle.sign('HMAC', cryptoKey, messageData);
const base64Signature = btoa(String.fromCharCode(...new Uint8Array(signature)));
url += `×tamp=${timestamp}&sign=${encodeURIComponent(base64Signature)}`;
}
// 转发请求到钉钉
const response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(message)
});
// 返回钉钉的响应
const result = await response.json();
return new Response(JSON.stringify(result), {
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}
});
} catch (error) {
return new Response(JSON.stringify({
error: error.message
}), {
status: 500,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}
});
}
}
如何获取钉钉机器人Token
- 在钉钉群中点击右上角群设置
- 选择"智能群助手" → "添加机器人"
- 选择"自定义机器人"
- 设置机器人名称和头像
- 获取Webhook地址中的access_token值
- 如需安全验证,可设置加签并获取Sec密钥
功能特点
多机器人支持
可配置多个机器人,自由切换发送
多种消息类型
支持文本、Markdown、图片消息
自定义颜色
Markdown消息支持自定义文字颜色
定时发送
可设置发送次数和时间间隔
安全加签
支持Sec密钥加签验证,更安全
响应式设计
适配手机、平板、电脑各种设备
使用提示
- 每个机器人每分钟最多发送20条消息
- 图片URL必须是公网可访问的地址
- Markdown支持有限的HTML标签
- 建议设置适当的发送间隔避免被限流