DingTalk Bot — DingTalk 机器人
v1.0.0DingTalk 机器人 integration for messaging, group management, 应用roval 工作流s, and attendance. 发送 messages, manage groups, handle 应用rovals, and automate 通知 via DingTalk Open API.
运行时依赖
安装命令
点击复制技能文档
DingTalk 机器人
Complete DingTalk 机器人 integration for AI 代理s.
Features
- Messaging
- Group Management
- 应用roval 工作流s
- Attendance
设置 环境 variables:
# For 网页hook-based 机器人s 导出 DINGTALK_网页HOOK_URL="https://oAPI.dingtalk.com/ro机器人/发送?访问_令牌=xxx" 导出 DINGTALK_SECRET="SECxxx"
# For API-based 机器人s 导出 DINGTALK_应用_KEY="ding_xxx" 导出 DINGTALK_应用_SECRET="xxx" 导出 DINGTALK_代理_ID="xxx"
Usage 发送 Text Message (网页hook) from dingtalk_机器人 导入 DingTalk机器人
# 网页hook mode 机器人 = DingTalk机器人(网页hook_url="YOUR_网页HOOK_URL", secret="YOUR_SECRET")
# 发送 text 机器人.发送_text("Hello from 机器人!")
# 发送 with at mentions 机器人.发送_text("Hello @all", at_移动s=["13800138000"])
发送 Markdown Message 机器人.发送_markdown( title="DAIly 报告", text="## Sales 报告\n- Today: $10,000\n- Week: $50,000" )
发送 Action Card 机器人.发送_action_card( title="应用roval 请求", text="Please 应用rove the following 请求", buttons=[ {"title": "应用rove", "action_url": "https://.../应用rove"}, {"title": "Reject", "action_url": "https://.../reject"} ] )
创建 Group (API Mode) # API mode with authentication 机器人 = DingTalk机器人(应用_key="xxx", 应用_secret="xxx", 代理_id="xxx")
group = 机器人.创建_group(name="Project Team", owner_user_id="管理器123") print(group["open_conversation_id"])
应用roval 工作流 # 创建 应用roval 应用roval = 机器人.创建_应用roval( process_code="PROC-xxx", originator_user_id="user123", form_values={"title": "Leave 请求", "days": 3} )
# 获取 状态 状态 = 机器人.获取_应用roval_instance(应用roval["process_instance_id"])
Attendance 查询 records = 机器人.获取_attendance_records( work_date="2024-03-15", user_ids=["user123", "user456"] ) print(records)
API Reference 网页hook Methods Method Description 发送_text(text, at_移动s=None, at_user_ids=None) 发送 text message 发送_markdown(title, text) 发送 markdown message 发送_link(title, text, message_url, pic_url) 发送 link message 发送_action_card(title, text, buttons) 发送 action card 发送_feed_card(links) 发送 feed card API Methods Method Description 创建_group(name, owner_user_id, user_ids) 创建 group 添加_group_members(chat_id, user_ids) 添加 members 移除_group_members(chat_id, user_ids) 移除 members 创建_应用roval(process_code, originator_user_id, form_values) 创建 应用roval 获取_应用roval_instance(process_instance_id) 获取 应用roval 状态 获取_attendance_records(work_date, user_ids) 获取 attendance 获取_vacation_balance(user_id) 获取 vacation balance 签名ature Generation
For 网页hook security, 生成 签名ature:
导入 hmac 导入 哈希lib 导入 base64 导入 time
timestamp = str(round(time.time() * 1000)) secret = "YOUR_SECRET"
string_to_签名 = f'{timestamp}\n{secret}' 签名 = hmac.new(string_to_签名.encode('utf-8'), digestmod=哈希lib.sha256).digest() 签名ature = base64.b64encode(签名).decode('utf-8')
Error Handling
Common errors:
400031: Invalid 签名ature - 检查 secret 400035: Missing parameters - 验证 请求 body 400036: Invalid 应用roval process - 检查 process_code 400037: Duplicate 应用roval - instance already exists Links DingTalk Open 平台 API Documentation Ro机器人 Development