Discord 机器人令牌相当于机器人账号的密码:任何持有它的人都可以让该机器人登录 Discord,并在它已加入的每个服务器中执行其权限所允许的任何操作。创建机器人应用程序时,你可以从 Discord 开发者门户免费获得令牌。请像对待密码一样对待它,因为它本来就是密码,而不是机器人用户 ID 或邀请链接那样的公开标识符。
如何获取 Discord 机器人令牌
- 打开开发者门户。前往 discord.com/developers/applications,并使用应当拥有该机器人的 Discord 账号登录。
- 创建应用程序。点击“New Application”(新建应用),并为其命名。这个名称目前还不是机器人的显示名称,它只是应用程序的名称。
- 打开“Bot”选项卡。Discord 会自动为应用程序添加一个机器人用户。在这里设置它的用户名和头像;这就是成员在服务器中会看到的内容。
- 开启你需要的任何 intent。在“Privileged Gateway Intents”(特权网关 Intent)下,“Server Members Intent”(服务器成员 Intent)和“Message Content Intent”(消息内容 Intent)默认是关闭的。大多数需要欢迎新成员、读取消息文本或跟踪身份组的机器人,都需要同时开启这两项。
- 点击“Reset Token”(重置令牌)。Discord 会生成令牌,并且只显示一次。请立即复制,之后无法再次查看同一个令牌;如果再次点击“Reset Token”,第一个令牌会失效,并生成一个新的令牌。
- 将其粘贴到需要的地方。作为环境变量粘贴到你自己的机器人代码中,或粘贴到托管服务商控制面板的字段中。绝不要粘贴到聊天消息、公开代码仓库或支持工单中。
机器人令牌实际授予了什么
令牌是代码以机器人用户身份通过 Discord 网关和 REST API 进行身份验证的凭据。持有有效令牌的代码可以:
- 让机器人登录并保持在线
- 在机器人可以看到的任何频道中发送和读取消息
- 在机器人已加入的每个服务器中,执行其身份组权限允许的任何操作:管理身份组、踢出、封禁、删除频道等等
- 读取机器人自己的私信,并响应交互(斜杠命令、按钮、模态框)
它不授予的权限是:将机器人添加到新的服务器。邀请机器人需要一个单独的 OAuth2 授权链接,该链接由应用程序的客户端 ID 和所选的权限集合构成,并且必须由服务器管理员批准。泄露的令牌不能用来将机器人邀请到新的地方,但它仍然可以在机器人已加入的每个服务器中造成真实的损害,损害程度取决于该机器人在那里拥有的权限。
为什么绝不要在聊天中粘贴机器人令牌
机器人令牌是一种明文凭据,没有内置的过期机制。任何拿到它的人,都可以在你重置令牌之前运行自己的机器人副本,包括在 Discord 支持服务器、GitHub 议题中,或是在屏幕共享中(即使只是短暂可见)。例如在 GitHub 提交中公开粘贴令牌,Discord 会将其视为已泄露的凭据;这也是机器人被劫持、从而向其所在的每个服务器发送垃圾信息的常见途径。事后无法判断是谁使用了泄露的令牌,或他们做了什么;唯一的补救办法就是重置它。
与托管服务商共享令牌时,也应同样谨慎。只能通过 HTTPS 将其粘贴到服务商自己的控制面板字段中,而绝不能发送给某个人(无论对方多么可靠),也不能放进错误报告中。
重置令牌会立即撤销访问权限
在开发者门户中点击“Reset Token”,会立即使旧令牌失效。仍在使用它的每个进程(你自己的代码、托管服务商,以及任何未经许可获取了它的人),在下一次尝试重新连接时都会被断开,并且无法再用旧值重新登录。这一机制背后有两点值得了解:
- 它是你的紧急开关。如果你怀疑令牌已经泄露,请先重置它,再做其他任何事情。持有旧令牌的人会使机器人离线,而机器人只会在输入了新令牌的地方重新上线。
- 它也是你更换服务商的方式。如果你把令牌交给了某个托管服务,现在想要离开?请在开发者门户中重置令牌,他们的访问权限会立即结束,而无需请他们删除任何东西。
因重置令牌而被断开的机器人,通常会在日志中显示网关关闭代码 4004(无效令牌),这是 Discord 在告诉你:它尝试使用的凭据已不再存在。
Noxyr 如何存储你的令牌
Noxyr 仅在其自定义机器人功能中索要机器人令牌。在该功能中,你可以在自己机器人的名称和头像下运行 Noxyr 的完整功能集。令牌以加密方式存储,仅用于让你的机器人登录 Discord 网关,粘贴之后,既不会再显示给你,也不会显示给任何其他人。如果你想切断访问,请按照上文所述的方式,在开发者门户中重置令牌;你一重置,Noxyr 的机器人就会立即断开,与其他使用旧令牌的客户端完全相同。完整的设置步骤、所需的 intent 以及免费的 Top.gg 投票访问模式,请参阅自定义机器人文档和我们的自定义机器人设置指南。
常见问题
在哪里能找到我的 Discord 机器人令牌?开发者门户 → 你的应用程序 → “Bot”选项卡 → “Reset Token”。令牌只在生成时显示一次;没有任何页面会再次显示已有的令牌。
分享机器人令牌安全吗?不安全。即使是私下分享,也会让对方完全控制该机器人在已加入的每个服务器中的行为。只应将其输入你自己的代码或托管服务商控制面板的字段中。
如果我重置机器人令牌,会发生什么?旧令牌会在它被使用的所有地方立即失效。你会得到一个新令牌,粘贴到你的代码或服务商控制面板中即可;机器人的身份、服务器和现有数据均不受影响。
泄露的令牌能用来把我的机器人添加到其他服务器吗?不能。那需要单独的 OAuth2 邀请链接,并且需要目标服务器的管理员批准。不过,泄露的令牌在机器人已加入的每个服务器中依然很危险。
重置令牌会删除任何内容吗?不会。它只会使旧凭据失效。与机器人的应用程序和用户 ID 相关的设置、身份组和已存储的数据,都会保持原样。
想设置你自己的机器人?免费添加 Noxyr;如果你要编写自己的代码,请参阅托管指南。