返回顶部
d

dingtalk-workspace

Interact with DingTalk enterprise workspace using the `dws` CLI. Use for: (1) searching contacts and departments, (2) sending chat messages, (3) managing calendar events and meeting rooms, (4) creating and managing todos, (5) approval workflows, (6) attendance records, (7) AITable CRUD operations, (8) report management. Requires dws CLI installed and authenticated via OAuth.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
54
下载量
0
收藏
概述
安装方式
版本历史

dingtalk-workspace

# DingTalk Workspace Skill Use the `dws` CLI to interact with DingTalk enterprise workspace. This skill covers all 12 products: contact, chat, bot, calendar, todo, oa (approval), attendance, ding, report, aitable, workbench, and devdoc. ## ⚠️ Security & Safety Notes **Read before installing:** 1. **Credentials Required**: This skill requires OAuth credentials (DWS_CLIENT_ID, DWS_CLIENT_SECRET) from a DingTalk Open Platform app. Enterprise admin approval may be needed. 2. **Install Safely**: The `dws` CLI installer fetches from GitHub. **Review the installer script before running**: - Installer: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/blob/main/scripts/install.sh - Releases: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/releases 3. **Autonomous Execution Risk**: This skill can perform destructive actions (approve workflows, send messages, delete records). **Always use `--dry-run` first** and restrict autonomous invocation unless you trust the agent. 4. **Least Privilege**: Use scoped OAuth credentials with minimum permissions. Test in a sandbox enterprise first. ## Prerequisites ### Installation **Option 1: Install from release (recommended)** Download pre-built binary from https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/releases **Option 2: Build from source (safer)** ```bash git clone https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git cd dingtalk-workspace-cli go build -o dws ./cmd cp dws ~/.local/bin/ ``` **Option 3: Install script (review first!)** ```bash # macOS / Linux - REVIEW SCRIPT BEFORE RUNNING curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | sh # Windows (PowerShell) - REVIEW SCRIPT BEFORE RUNNING irm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex ``` ### Authentication ```bash # First-time login (credentials saved to system Keychain) dws auth login --client-id <your-app-key> --client-secret <your-app-secret> # Or via environment variables export DWS_CLIENT_ID=<your-app-key> export DWS_CLIENT_SECRET=<your-app-secret> dws auth login ``` ## Safe Execution Guidelines ### For Agents - **`--dry-run`**: **ALWAYS use first** for mutations to preview API calls - **`--yes`**: Skip confirmation prompts (use only after verifying with --dry-run) - **`--jq`**: Extract specific fields to reduce token consumption - **`--fields`**: Return only needed fields ### Recommended Workflow ```bash # 1. Preview the operation dws todo task create --title "Test" --executors "user123" --dry-run # 2. Verify the output looks correct # 3. Execute (only if preview was correct) dws todo task create --title "Test" --executors "user123" --yes ``` ### Auto-Correction `dws` automatically corrects common AI mistakes: - `--baseId` → `--base-id` (camelCase to kebab-case) - `--timeout30` → `--timeout 30` (sticky argument splitting) - `--tabel-id` → `--table-id` (fuzzy matching) - `"yes"` → `true`, `"2024/03/29"` → `"2024-03-29"` (value normalization) ## Discovery & Introspection Before making calls, discover available capabilities: ```bash # List all products and tool counts dws schema --jq '.products[] | {id, tool_count: (.tools | length)}' # Inspect a specific tool's parameter schema dws schema aitable.query_records --jq '.tool.parameters' # View required fields dws schema aitable.query_records --jq '.tool.required' # List all product IDs dws schema --jq '.products[].id' ``` ## Quick Reference by Product ### Contact ```bash # Search users by keyword dws contact user search --keyword "engineering" # Get current user profile dws contact user get-self --jq '.result[0].orgEmployeeModel | {name: .orgUserName, dept: .depts[0].deptName}' # Search department by name dws contact dept search --keyword "Engineering" # List department members dws contact dept members --dept-id <dept-id> ``` ### Chat ```bash # Send message as bot dws chat message send-by-bot --robot-code <BOT_CODE> --group <GROUP_ID> --title "Weekly Report" --text @report.md # List groups dws chat group list # Get group info dws chat group get --group-id <GROUP_ID> ``` ### Calendar ```bash # List calendar events dws calendar event list # Create event dws calendar event create --title "Team Meeting" --start "2024-03-29T14:00:00Z" --end "2024-03-29T15:00:00Z" # Find free slots dws calendar participant busy --user-ids <user-id-1>,<user-id-2> --start "2024-03-29" --end "2024-03-30" # Search meeting rooms dws calendar room search --keyword "Meeting Room" ``` ### Todo ```bash # Create todo dws todo task create --title "Review PR" --executors "<your-userId>" --yes # List todos dws todo task list # Mark as done dws todo task done --task-id <task-id> ``` ### Approval (OA) ```bash # List pending approvals dws oa approval list --status pending # Approve instance dws oa approval approve --instance-id <instance-id> --comment "Approved" # Reject instance dws oa approval reject --instance-id <instance-id> --comment "Needs revision" ``` ### Attendance ```bash # View my attendance records dws attendance record list --user-id <your-userId> # View team shift schedule dws attendance shift list --dept-id <dept-id> ``` ### Report ```bash # View today's received reports dws report list --type received --start-date "2024-03-29" --end-date "2024-03-29" # Create report dws report create --template-id <template-id> --content @report.md ``` ### AITable ```bash # Query records dws aitable record query --base-id <BASE_ID> --table-id <TABLE_ID> --limit 10 # Create record dws aitable record create --base-id <BASE_ID> --table-id <TABLE_ID> --fields '{"name": "Task 1", "status": "open"}' # List bases dws aitable base list # List tables in a base dws aitable table list --base-id <BASE_ID> ``` ## Output Control ### jq Filtering ```bash # Extract specific fields dws contact user search --keyword "engineering" --jq '.result[] | {name: .orgUserName, userId: .userId}' # Count results dws todo task list --jq '.result | length' ``` ### Field Selection ```bash # Return only specific fields dws aitable record query --base-id <BASE_ID> --table-id <TABLE_ID> --fields invocation,response ``` ### File Input ```bash # Read from file dws chat message send-by-bot --robot-code <BOT_CODE> --group <GROUP_ID> --text @message.md # Pipe from stdin cat message.md | dws chat message send-by-bot --robot-code <BOT_CODE> --group <GROUP_ID> ``` ## Common Workflows See bundled scripts in `scripts/` for batch operations: | Script | Description | |--------|-------------| | `calendar_schedule_meeting.py` | Create event + add participants + book meeting room | | `calendar_free_slot_finder.py` | Find common free slots across multiple people | | `todo_batch_create.py` | Batch create todos from JSON | | `contact_dept_members.py` | Search department and list all members | | `report_inbox_today.py` | View today's received reports | ## Error Handling ### Common Error Codes - `INVALID_TOKEN`: Re-authenticate with `dws auth login` - `PERMISSION_DENIED`: Check app permissions in DingTalk Open Platform - `RESOURCE_NOT_FOUND`: Verify IDs with `dws schema` introspection ### Recovery When encountering `RECOVERY_EVENT_ID`, use: ```bash dws --recovery <RECOVERY_EVENT_ID> ``` ## Security Notes - Credentials are stored encrypted in system Keychain (never in config files) - All requests use HTTPS to `*.dingtalk.com` only - Use `--dry-run` before any mutation to preview the API call - Token refresh is automatic; no manual intervention needed ## Reference Files - **Product commands**: See `references/products/*.md` for detailed command reference per product - **Intent guide**: See `references/intent-guide.md` for disambiguation (e.g., report vs todo) - **Error codes**: See `references/error-codes.md` for debugging workflows - **Global reference**: See `references/global-reference.md` for auth, output formats, global flags

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 dingtalk-workspace-1775891417 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 dingtalk-workspace-1775891417 技能

通过命令行安装

skillhub install dingtalk-workspace-1775891417

下载 Zip 包

⬇ 下载 dingtalk-workspace v1.0.1

文件大小: 26.6 KB | 发布时间: 2026-4-12 09:44

v1.0.1 最新 2026-4-12 09:44
- Added a dedicated security and safety section at the top, highlighting credential handling, installation review, and safe usage with destructive actions.
- Expanded installation instructions with multiple options (pre-built binaries, source build, install script) and emphasized reviewing installer scripts before use.
- Clarified OAuth credential requirements and placement for authentication.
- Strengthened safe execution instructions for agents, with explicit --dry-run use and a recommended step-by-step workflow.
- No API or functional changes to commands; documentation and guidance improved for safer, more secure ons.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部