一键导入
dingtalk-openapi-skill
Operate DingTalk messaging APIs through UXC with a curated OpenAPI schema, app-token bearer auth, and robot/service-group guardrails.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Operate DingTalk messaging APIs through UXC with a curated OpenAPI schema, app-token bearer auth, and robot/service-group guardrails.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Operate Feishu or Lark IM APIs through UXC with a curated OpenAPI schema, tenant-token bearer auth, and chat/message guardrails.
Operate GitHub REST API through UXC with the official OpenAPI schema, explicit gh-to-uxc auth import, and read-first guardrails for repo, issue, pull request, and event workflows.
Operate X API v2 through UXC with the official OpenAPI schema, OAuth2 PKCE user-context auth, app-only bearer guidance, and read-first guardrails for timeline/bookmark/post workflows.
Discover and call remote schema-exposed interfaces with UXC. Use when an agent or skill needs to list operations, inspect operation schemas, and execute OpenAPI, GraphQL, gRPC, MCP, or JSON-RPC calls via one CLI contract.
Use a local QMD knowledge base through UXC over MCP stdio, with daemon-backed session reuse and typed retrieval flows that avoid repeated model warmup and unnecessary query-expansion latency.
Operate Notion Public API through UXC with a curated OpenAPI schema for search, block traversal, page reads, content writes, and data source/database inspection. Use when tasks need recursive reads or structured writes that Notion MCP does not expose directly.
| name | dingtalk-openapi-skill |
| description | Operate DingTalk messaging APIs through UXC with a curated OpenAPI schema, app-token bearer auth, and robot/service-group guardrails. |
Use this skill to run DingTalk messaging operations through uxc + OpenAPI.
Reuse the uxc skill for shared execution, auth, and error-handling guidance.
uxc is installed and available in PATH.https://api.dingtalk.com/v1.0.https://raw.githubusercontent.com/holon-run/uxc/main/skills/dingtalk-openapi-skill/references/dingtalk-messaging.openapi.jsonappKey + appSecret, or a current accessToken if you are using the manual fallback path.This skill covers a narrow IM-focused request/response surface:
unionIdThis skill does not cover:
oapi.dingtalk.com endpointsDingTalk has event-delivery flows such as Stream Mode, but those flows are outside the current scope of this skill.
Current uxc subscribe status:
uxc subscribeTreat DingTalk as a possible future subscribe target via Stream Mode rather than a currently supported IM subscribe provider.
This skill is intentionally pinned to the newer DingTalk Open Platform host:
https://api.dingtalk.com/v1.0The older oapi.dingtalk.com surface is intentionally excluded from v1 to keep auth and schema shape consistent.
DingTalk v1 APIs use app accessToken credentials.
Preferred setup is to store appKey + appSecret as credential fields and let uxc auth bootstrap fetch and refresh the short-lived access token automatically.
Bootstrap-managed setup:
uxc auth credential set dingtalk-app \
--auth-type bearer \
--field app_key=env:DINGTALK_APP_KEY \
--field app_secret=env:DINGTALK_APP_SECRET
uxc auth bootstrap set dingtalk-app \
--token-endpoint https://api.dingtalk.com/v1.0/oauth2/accessToken \
--header 'Content-Type=application/json' \
--request-json '{"appKey":"{{field:app_key}}","appSecret":"{{field:app_secret}}"}' \
--access-token-pointer /accessToken \
--expires-in-pointer /expireIn
uxc auth binding add \
--id dingtalk-app \
--host api.dingtalk.com \
--path-prefix /v1.0 \
--scheme https \
--credential dingtalk-app \
--priority 100
Manual fallback if you already have an app access token:
curl -sS https://api.dingtalk.com/v1.0/oauth2/accessToken \
-H 'Content-Type: application/json' \
-d '{"appKey":"dingxxxx","appSecret":"xxxx"}'
Configure one bearer credential and bind it to the DingTalk API host:
uxc auth credential set dingtalk-app \
--auth-type bearer \
--secret-env DINGTALK_ACCESS_TOKEN
uxc auth binding add \
--id dingtalk-app \
--host api.dingtalk.com \
--path-prefix /v1.0 \
--scheme https \
--credential dingtalk-app \
--priority 100
Validate the active mapping when auth looks wrong:
uxc auth binding match https://api.dingtalk.com/v1.0
Use the fixed link command by default:
command -v dingtalk-openapi-cliuxc link dingtalk-openapi-cli https://api.dingtalk.com/v1.0 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/dingtalk-openapi-skill/references/dingtalk-messaging.openapi.jsondingtalk-openapi-cli -hInspect operation schema first:
dingtalk-openapi-cli get:/contact/users/{unionId} -hdingtalk-openapi-cli post:/robot/oToMessages/batchSend -hdingtalk-openapi-cli post:/robot/groupMessages/send -hPrefer read/setup validation before writes:
dingtalk-openapi-cli get:/contact/users/{unionId} unionId=$DINGTALK_UNION_IDdingtalk-openapi-cli post:/robot/oToMessages/batchSend -hdingtalk-openapi-cli post:/serviceGroup/messages/send -hExecute with key/value or positional JSON:
dingtalk-openapi-cli get:/contact/users/{unionId} unionId=$DINGTALK_UNION_ID language=zh_CNdingtalk-openapi-cli post:/robot/groupMessages/send '{"openConversationId":"cidxxxx","robotCode":"dingxxxx","msgKey":"sampleText","msgParam":"{\"content\":\"Hello from UXC\"}"}'get:/contact/users/{unionId}post:/robot/oToMessages/batchSendpost:/robot/groupMessages/sendpost:/serviceGroup/messages/send--text.ok, kind, protocol, data, error.uxc auth bootstrap over manual token management. Manual accessToken setup is still supported as a fallback.msgParam is a JSON-encoded string payload, not a nested JSON object. Build and validate that string carefully before sending.robotCode, openConversationId, coolAppCode, and target identifiers are all provider-specific routing fields. Missing any of them generally means the send will fail even if auth is valid.dingtalk-openapi-cli <operation> ... is equivalent to uxc https://api.dingtalk.com/v1.0 --schema-url <dingtalk_openapi_schema> <operation> ....references/usage-patterns.mdreferences/dingtalk-messaging.openapi.json