• 产品简介
  • 快速开始
    • Agent 开发
    • 导入 Git 仓库
    • 从模板开始
    • 直接上传
    • 从 AI 开始
  • 框架指南
    • Agent
    • 前端
      • Vite
      • React
      • Vue
      • Hugo
      • 其他框架
    • 后端
    • 全栈
      • Next.js
      • Nuxt
      • Astro
      • React Router
      • SvelteKit
      • TanStack Start
      • Vike
    • 自定义 404 页面
  • 项目指南
    • 项目管理
    • edgeone.json
    • 缓存配置
    • 构建输出配置
    • 域名管理
      • 概览
      • 自定义域名
      • 配置 HTTPS 证书
        • 概览
        • 申请免费证书
        • 使用 SSL 托管证书
      • 配置 DNS 的 CNAME 记录
    • 错误码
  • 构建指南
  • 部署指南
    • 概览
    • 触发部署
    • 管理部署
    • 部署按钮
    • 使用 Github Action
    • 使用 Gitlab CI/CD
    • 使用 CNB 插件
    • 使用 IDE 插件
    • 使用 CodeBuddy IDE
  • Makers for Platforms
    • 平台与多租户
    • Vibe Coding 解决方案
    • 模板示例
      • Vibe Coding 通用模板
      • Vibe Coding 平台模板
  • 可观测性
    • 概览
    • 指标分析
    • 日志分析
  • Functions
    • 概览
    • Edge Functions
    • Cloud Functions
      • 概览
      • Node.js
      • Python
      • Go
  • Agents
    • 概览
    • 快速开始
    • 会话管理
    • 可观测
    • 沙箱工具
      • 概览
      • Agent 框架使用
      • 沙箱原子 API
      • 网络搜索工具
    • Agent 应用鉴权
  • Models
    • 概览
    • 模型与厂商
      • 概览
      • 使用朱雀模型
      • 使用 Jev 模型
      • 使用厂商密钥
        • OpenAI
        • Anthropic
        • Google AI Studio
        • DeepSeek
        • MiniMax
        • 混元
        • 智谱
        • 月之暗面
    • 常见问题
  • 存储
    • 概览
    • KV
    • Blob
  • 中间件
  • AI 原生开发
    • Skills
    • MCP
    • Plugin
  • Copilot
    • 概览
    • 快速开始
  • API Token
  • EdgeOne CLI
  • Makers SDK
    • 概览
    • 示例
      • 通过 SDK 部署
      • 通过 CLI 部署
      • 项目管理
    • 项目
      • 项目操作
      • 环境变量
    • 部署
  • 消息通知
  • 集成指南
    • AI
      • Makers Models 集成
      • 图片大模型集成
    • 数据库
      • Supabase 集成
      • Pages KV 集成
    • 电商
      • Shopify 集成
      • WooCommerce 集成
    • 支付
      • Stripe 集成
      • Paddle 集成
    • CMS
      • WordPress 集成
      • Contentful 集成
      • Sanity 集成
      • Payload 集成
    • 身份验证
      • Supabase 集成
      • Clerk 集成
    • IM
      • 概览
      • 企业微信
      • 飞书
      • 钉钉
      • Telegram
      • Slack
      • Discord
  • 最佳实践
    • 为网站添加 AI 对话助手
    • AI 对话式部署:使用 Skill 一句话部署项目
    • 使用 Makers Agents 快速搭建 Agent 应用
    • 使用 Shopify 搭建电商平台
    • 使用 Supabase 和 Stripe 搭建 SaaS 站点
    • 如何快速搭建公司品牌站点
    • 如何快速搭建博客站点
    • 在 WorkBuddy 中通过免登录部署快速上线
  • 迁移指南
    • 从 Vercel 迁移至 EdgeOne Makers
    • 从 Cloudflare Pages 迁移至 EdgeOne Makers
    • 从 Netlify 迁移至 EdgeOne Makers
  • 排障指南
  • 常见问题
  • 限制与配额
  • 价格与套餐
  • 联系我们
  • 产品动态

Discord

本文介绍如何创建 Discord 应用,将服务器中的 Slash Command 通过 HTTP Interactions 发送到腾讯云 EdgeOne Makers,由 Agent 处理后返回当前频道。完成命令测试后,可使用模板自带的 Gateway 入口验证普通消息和 @Bot。

前提条件和适用范围

已有 Discord 账号和测试服务器,具备该服务器的 Manage Server 权限。
可登录 Discord Developer Portal 创建应用。
已开通 Makers。
本地已安装 Python 3,用于注册测试命令。
本文采用 Guild Install,先验证服务器普通文本频道中的 /ask,不覆盖用户安装、语音和附件处理。

创建应用并获取凭证

1. 登录 Developer Portal,单击 New Application,填写名称,例如 Makers Assistant,完成创建。
2. 进入 General Information,复制 Application ID 和 Public Key。
3. 进入 Bot,在 Token 区域按界面提示生成或重置 Token,并立即安全保存。重置已有 Token 会使旧 Token 失效。
配置
用途
是否敏感
Application ID
标识应用,注册命令。
否。
Public Key
验证 HTTP Interactions 的 Ed25519 签名。
否。
Bot Token
调用 Discord API;Gateway 登录。
是。
创建与安装流程参见 Discord 入门文档。Bot Token 不是 Client Secret,Public Key 也不是 Bot Token。

配置安装权限并添加到服务器

1. 进入 Installation,在 Installation Contexts 中启用 Guild Install。
2. 将 Install Link 设置为 Discord Provided Link。
3. 在 Default Install Settings > Guild Install 中选择 applications.commands 和 bot。
4. 为本教程的普通文本频道测试配置以下 Bot 权限。
权限
用途
配置范围
View Channels
访问测试频道
必需
Send Messages
发送回复
必需
Read Message History
读取消息或定位历史消息时使用
可选;仅需要该能力时添加
Create Public Threads
当前 Adapter 处理 Gateway 提及时创建线程
仅可选 Gateway 测试需要
Send Messages in Threads
在线程中发送消息
仅测试线程会话时需要
Manage Threads
当前模板删除 Gateway 提及时生成的空线程
仅可选 Gateway 提及测试需要
5. 复制 Install Link,在浏览器打开,选择 Add to server,选择测试服务器并完成授权。
6. 确认 Bot 出现在服务器成员列表中;在测试频道检查权限覆盖规则,确保没有显式禁止查看或发送消息。



参考图中的 Guild Install 区域选择 applications.commands 和 bot;权限按上表补齐 View Channels 与 Send Messages。

不要授予 Administrator。后续新增权限时,使用更新后的安装链接重新授权,或由管理员调整 Bot 角色及频道权限。安装了 applications.commands 不等于已经创建 /ask 命令,步骤5会注册命令。

部署 Makers 模板

2. 在项目环境变量设置中填写以下变量(负责一份.env.example 为.env)。
环境变量
是否必填
填写说明
DISCORD_APPLICATION_ID
是
Application ID
DISCORD_PUBLIC_KEY
是
Public Key
DISCORD_BOT_TOKEN
是
Bot Token
3. 保存配置并部署
4. 复制生产环境 HTTPS 域名,在末尾添加 /discord
5. 注意服务应该部署在全球可用区,discord 服务才能正确访问。

步骤4:保存 Interactions Endpoint URL

1. 返回 Developer Portal 的 General Information。
2. 在 Interactions Endpoint URL 中输入步骤3的完整地址,保存配置。
3. 确认地址验证成功。Discord 会发送签名 PING,模板通过 Public Key 验证后返回 PONG。



注册测试服务器的 /ask 命令

1. 在 Discord 客户端进入 User Settings > Advanced,开启 Developer Mode。
2. 右键单击测试服务器图标,选择 Copy Server ID,记录服务器 ID(Guild ID)。
3. 在本地终端执行以下命令,创建并运行注册脚本。输入步骤1的 Application ID、测试服务器 ID 和 Bot Token;Token 使用隐藏输入,不写入文件。

cat > register-discord-command.py <<'PY'
import getpass
import json
import urllib.error
import urllib.request

application_id = input('Application ID:').strip()
guild_id = input('测试服务器 ID:').strip()
bot_token = getpass.getpass('Bot Token(隐藏输入):').strip()
if not application_id.isdigit() or not guild_id.isdigit():
raise SystemExit('Application ID 和服务器 ID 必须为数字。')
command = {
'name': 'ask',
'type': 1,
'description': '向 Makers Agent 提问',
'options': [{
'name': 'question',
'type': 3,
'description': '请输入问题',
'required': True,
}],
}
url = ('https://discord.com/api/v10/applications/' + application_id
+ '/guilds/' + guild_id + '/commands')
request = urllib.request.Request(
url,
data=json.dumps(command).encode(),
headers={
'Authorization': 'Bot ' + bot_token,
'Content-Type': 'application/json',
'User-Agent': 'Makers-IM-Setup/1.0',
},
method='POST',
)
try:
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
raise SystemExit(f'Discord HTTP {error.code},请检查凭证、安装状态和请求参数。') from None
except urllib.error.URLError:
raise SystemExit('无法连接 Discord API,请检查网络。') from None
print('已注册命令:/' + result['name'])
print('命令 ID:' + result['id'])
PY
python3 register-discord-command.py

脚本调用创建服务器命令接口,只在指定测试服务器创建或更新同名 /ask,不会批量覆盖其他命令。若已有同名命令,请先使用独立测试应用。接口依据见 Application Commands。
模板已注册 onSlashCommand,会将 question 参数文本传给 Agent,无需另写命令处理函数。

发送命令并验证

1. 打开 Bot 有权限访问的测试服务器文本频道,输入 /ask。
2. 从命令列表中选择当前应用的命令,在 question 参数中填写 请用一句话介绍腾讯云 EdgeOne Makers。发送命令。
3. 确认出现 Thinking…,随后更新为 Agent 的最终回复。
4. 再执行 /ask,输入 请把上一条回答缩短为十个字以内。确认第二轮回复。