1.6 KiB
1.6 KiB
Discord Control API
目标:补齐 OpenClaw 内置 message 工具当前未覆盖的两个能力:
- 创建指定名单可见的私人频道
- 查看 server 成员列表(分页)
Start
cd discord-control-api
export DISCORD_BOT_TOKEN='xxx'
# optional
# export AUTH_TOKEN='strong-token'
node server.mjs
Health:
curl -sS http://127.0.0.1:8790/health
Unified action endpoint
POST /v1/discord/action
- Header:
Authorization: Bearer <AUTH_TOKEN>(若配置) - Body:
{ "action": "...", ... }
Action: channel-private-create
与 OpenClaw channel-create 参数保持风格一致,并增加私密覆盖参数。
Request
{
"action": "channel-private-create",
"guildId": "123",
"name": "private-room",
"type": 0,
"parentId": "456",
"topic": "secret",
"position": 3,
"nsfw": false,
"allowedUserIds": ["111", "222"],
"allowedRoleIds": ["333"],
"allowMask": "67648",
"denyEveryoneMask": "1024"
}
说明:
- 默认 deny
@everyone的VIEW_CHANNEL。 - 默认给 allowed targets 放行:
VIEW_CHANNEL + SEND_MESSAGES + READ_MESSAGE_HISTORY。 allowMask/denyEveryoneMask使用 Discord permission bit string。
Action: member-list
Request
{
"action": "member-list",
"guildId": "123",
"limit": 100,
"after": "0"
}
说明:
limit1~1000after用于分页(Discord snowflake)
Notes
- 这不是 bot 自提权工具;bot 仍需由管理员授予足够权限。
- 若无权限,Discord API 会返回 403 并原样透出错误信息。