← 返回
开发者工具 Key

Discord OpenAPI Skill

Operate Discord HTTP API through UXC with Discord OpenAPI schema. Bot token recommended for full API access including messages and server management. OAuth2...
通过UXC操作Discord HTTP API,使用Discord OpenAPI模式。建议使用Bot令牌以获取完整API访问权限(包括消息和服务器管理)。支持OAuth2...
jolestar
开发者工具 clawhub v1.0.1 2 版本 99895 Key: 需要
★ 0
Stars
📥 951
下载
💾 11
安装
2
版本
#latest

概述

Discord API Skill

Use this skill to run Discord REST operations through uxc + OpenAPI.

Reuse the uxc skill for shared execution, auth, and error-handling guidance.

Prerequisites

  • uxc is installed and available in PATH.
  • Network access to https://discord.com/api/v10.
  • Access to Discord OpenAPI spec URL:
  • https://raw.githubusercontent.com/discord/discord-api-spec/main/specs/openapi.json
  • Discord bot token (recommended) or OAuth2 user authentication (limited functionality).

Authentication

Option 1: Bot Token (Recommended)

Bot token provides full access to Discord API including reading messages, managing servers, sending messages, and all administrative operations. This is the recommended method for most use cases.

  1. Create a bot application at https://discord.com/developers/applications
  2. Generate a bot token from the Bot section
  3. Configure bot credential:
uxc auth credential set discord-bot \
  --auth-type api_key \
  --header "Authorization=Bot {{secret}}" \
  --secret "YOUR_BOT_TOKEN_HERE"
  1. Bind credential to Discord API endpoint:
uxc auth binding add \
  --id discord-bot \
  --host discord.com \
  --path-prefix /api/v10 \
  --scheme https \
  --credential discord-bot \
  --priority 100

Option 2: OAuth2 User Authentication (Limited Use Cases)

Important: User OAuth2 has significant limitations and is not recommended for most operations:

  • ❌ Cannot read channel messages via HTTP API (local RPC only)
  • ❌ Cannot send messages or manage servers
  • ✅ Can read user profile, email, connections
  • ✅ Can list user's servers

Only use OAuth2 if you specifically need to access user profile information as the user. For all other operations, use Bot Token.

If you still need OAuth2 for user profile operations:

Configuration:

  • Client ID: 1479302369723285736
  • Redirect URI: http://127.0.0.1:11111/callback

OAuth2 Scopes:

Discord user OAuth2 supports read-only operations. It cannot send messages or manage servers as a user (use Bot Token for those operations).

Recommended Scopes (Full Functionality):

--scope "identify email connections guilds guilds.members.read messages.read openid"

Minimal Read-Only Scopes:

--scope "identify email connections guilds guilds.members.read"

Scope Reference:

ScopeDescriptionWrite Operation
-------------------------------------
identifyBasic user info (username, avatar, etc.)❌ Read
emailUser's email address❌ Read
connectionsLinked third-party accounts (Twitch, YouTube, etc.)❌ Read
guildsUser's server list❌ Read
guilds.joinJoin user to servers (requires the same application's bot to already be in that guild)Write
guilds.members.readUser's member info in servers❌ Read
messages.readRead messages (local RPC only, not HTTP API)❌ Read
openidOpenID Connect support❌ Read

Note: User OAuth2 cannot send messages or manage servers as the user. Use Bot Token for write operations. guilds.join is a special user OAuth write capability that depends on the same application's bot already being in the target guild, so it is not part of the default read-only flow. See Discord OAuth2 documentation for complete scope list.

Two-Stage OAuth Flow (Agent-Friendly):

  1. Start OAuth flow with desired scopes:
  2. uxc auth oauth start discord-user \
      --endpoint https://discord.com/api/oauth2/token \
      --client-id 1479302369723285736 \
      --redirect-uri http://127.0.0.1:11111/callback \
      --scope "identify email connections guilds guilds.members.read messages.read openid"
    
  1. Open the displayed authorization URL in browser, complete authorization, then copy the callback URL from browser address bar.
  1. Complete OAuth flow:
  2. uxc auth oauth complete discord-user \
      --session-id <session_id_from_step_1> \
      --authorization-response "<callback_url_from_browser>"
    
  1. Bind credential:
  2. uxc auth binding add \
      --id discord-user \
      --host discord.com \
      --path-prefix /api/v10 \
      --scheme https \
      --credential discord-user \
      --priority 100
    

Interactive Alternative (Local Terminal Only):

uxc auth oauth login discord-user \
  --endpoint https://discord.com/api/oauth2/token \
  --flow authorization_code \
  --client-id 1479302369723285736 \
  --redirect-uri http://127.0.0.1:11111/callback \
  --scope "identify email connections guilds guilds.members.read messages.read openid"

Then paste the callback URL when prompted.

Core Workflow

  1. Use fixed link command by default:
    • command -v discord-openapi-cli
    • If missing, create it: uxc link discord-openapi-cli https://discord.com/api/v10 --schema-url https://raw.githubusercontent.com/discord/discord-api-spec/main/specs/openapi.json
    • discord-openapi-cli -h
  1. Discover operations with schema mapping:
    • discord-openapi-cli -h
  1. Inspect operation schema first:
    • discord-openapi-cli get:/users/@me -h
    • discord-openapi-cli post:/channels/{channel_id}/messages -h
  1. Execute operation:
    • connectivity check (no auth): discord-openapi-cli get:/gateway
    • key/value: discord-openapi-cli get:/guilds/{guild_id}/channels guild_id=GUILD_ID
    • positional JSON: discord-openapi-cli post:/channels/{channel_id}/messages '{"channel_id":"CHANNEL_ID","content":"Hello from uxc"}'
    • binding check when auth looks wrong: uxc auth binding match https://discord.com/api/v10

Authentication Methods Comparison

FeatureBot TokenUser OAuth2
---------------------------------
Read channel messages✅ Full access❌ Not via HTTP API
Send messages✅ As the bot❌ Not supported
Manage channels/roles✅ Bot permissions❌ Not supported
Moderation actions✅ Bot permissions❌ Not supported
List servers✅ Servers bot is in✅ User's servers
Read user info❌ Not available✅ As the user
Message appearanceBot badge "BOT"N/A

Key Recommendation: Use Bot Token for almost all operations. User OAuth2 is only useful if you need to read user profile information as that specific user. For reading channel messages, managing servers, or sending messages, Bot Token is required.

Subscribe / Gateway Status

Discord inbound events flow through the Gateway WebSocket, not through this REST/OpenAPI surface.

Current uxc subscribe status:

  • the built-in discord-gateway transport now bootstraps through GET /gateway/bot
  • live Gateway sessions reached READY and delivered GUILD_CREATE
  • a real posted channel message produced a MESSAGE_CREATE event in the subscribe sink
  • heartbeat scheduling, IDENTIFY, sequence tracking, and reconnect handling are implemented

Recommended invocation:

uxc subscribe start https://discord.com/api/v10 \
  '{"intents":4609,"device":"uxc-discord"}' \
  --transport discord-gateway \
  --auth discord-bot \
  --sink file:$HOME/.uxc/subscriptions/discord-gateway.ndjson

Intent notes:

  • 4609 = GUILDS | GUILD_MESSAGES | DIRECT_MESSAGES
  • add 32768 (MESSAGE_CONTENT) only when the bot has that privileged intent enabled in the Discord developer portal

Use discord-openapi-cli for REST calls and uxc subscribe start ... --transport discord-gateway ... for inbound Gateway events.

Guardrails

  • OAuth2 Scope Limitation: User OAuth2 tokens cannot read channel messages via HTTP API, send messages, or manage servers. These operations require Bot Token authentication.
  • Discord OpenAPI spec is persisted in the generated link via uxc link --schema-url ...; pass --schema-url only when you need to override it temporarily.
  • Keep automation on JSON output envelope; do not use --text.
  • Parse stable fields first: ok, kind, protocol, data, error.
  • Prefer positional JSON for non-string objects instead of --input-json.
  • discord-openapi-cli ... is equivalent to uxc https://discord.com/api/v10 --schema-url ....
  • Treat post:/channels/{channel_id}/messages, delete/update endpoints, and moderation endpoints as write/high-risk operations; require explicit user confirmation before execution.

References

  • Usage patterns: references/usage-patterns.md
  • Discord API docs: https://discord.com/developers/docs
  • Discord API OpenAPI spec: https://github.com/discord/discord-api-spec

版本历史

共 2 个版本

  • v1.0.0
    2026-03-30 23:24
  • v1.0.1 当前
    2026-03-18 18:10 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Uxc

jolestar
使用UXC发现并调用远程模式暴露的接口。当代理或技能需要列出操作、检查操作模式并执行Open等操作时使用。
★ 0 📥 894
developer-tools

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 65 📥 179,825
developer-tools

Gog

steipete
Google Workspace 命令行工具,支持 Gmail、日历、云端硬盘、通讯录、表格和文档。
★ 920 📥 185,723