创建Discord应用大约只需五分钟,无需编程:登录开发者门户,点击新建应用,为其添加机器人,开启所需的Intent,生成令牌,然后创建邀请链接。在最后一步之前,都只是填写表单。之后你要如何使用这个应用,是自己编写代码,还是把令牌交给一个为你运行功能集的托管服务,那是另外的决定。

“Discord应用”到底是什么

应用是Discord为你在其平台上构建的任何内容所创建的容器:包括名称、图标、客户端ID,以及可选附加的机器人用户。应用本身不会做任何事。附加在其上的机器人用户才是真正登录、发送消息和响应命令的主体。大多数人把“应用”和“机器人”混用,因为实际操作中创建应用就是为了得到机器人,但一旦涉及OAuth2范围和权限,这一区别就变得重要了,因为这些权限是代表应用请求的,而不是手动输入的。

分步操作

  1. 打开开发者门户。前往discord.com/developers/applications,使用应当拥有该机器人的账号登录。
  2. 点击新建应用。为其命名。这将成为应用的内部名称;之后可以随时重命名,不会影响已经运行的任何内容。
  3. 打开机器人标签页。机器人用户会自动添加。在这里设置其用户名并上传头像,这些内容会显示在它加入的每个服务器中。
  4. 开启它所需的任何特权Intent。在特权网关Intent下,服务器成员Intent和消息内容Intent默认是关闭的。如果机器人需要读取消息文本,或对成员加入和离开作出反应,就必须同时开启这两项,否则它根本无法登录。
  5. 点击重置令牌。Discord会生成令牌,并且只显示一次。请立即复制,因为之后没有任何页面会再次显示已有的令牌;如果再次点击重置令牌,你刚刚复制的令牌就会失效。
  6. 生成邀请链接。使用OAuth2标签页中的URL生成器,勾选bot和applications.commands范围,勾选机器人实际需要的权限,然后复制生成的链接。
  7. 邀请到服务器。打开链接,选择你管理的服务器,并批准Discord显示的权限。

容易出错的地方

  • 把应用名称和机器人用户名混淆。两者可以不同。之后重命名应用不会改变机器人的名称;机器人名称需要在机器人标签页中修改。
  • 在粘贴之前就丢失了令牌。如果在复制之前关闭了页面,不必慌张,只需再次点击重置令牌即可获得新的令牌。旧的令牌会直接失效。
  • 跳过Intent设置,然后纳闷机器人为什么无法上线。如果机器人代码请求了某个特权Intent,而门户中没有开启,它不会以降级状态连接,而是会被Discord直接拒绝登录,并提示“disallowed intents”错误。
  • 出于习惯在邀请链接中请求管理员权限。这样确实能运行,但它是Discord能向服务器所有者展示的最吓人的权限界面,也是邀请被拒绝的常见原因。请只勾选机器人实际使用的权限。
A user's bot token runs on a Noxyr node and comes online as their own branded bot. Your token Noxyr node MyBot Online

接下来如何处理这个应用

一旦你拥有了应用、机器人用户和令牌,接下来有两条路径。你可以编写或下载机器人代码,并自行在本机或托管服务器上运行,这是我们免费机器人托管指南的主题。或者你可以完全不写代码:把令牌粘贴到一个会以你的机器人身份运行现有功能集的服务中。Noxyr的自定义机器人正是如此,包括工单、商店、安全、抽奖、验证等,全部以你刚刚设置的名称和头像响应,托管免费,只需为Top.gg投票即可。完整的设置教程(包括上述两项Intent)请参阅自定义机器人文档。

无论你选择哪条路径,你刚刚创建的应用都是两者所需的唯一东西。创建它本身不会把你锁定在任何一个方向上。

常见问题

创建Discord应用需要会编程吗?不需要。创建应用、机器人用户和令牌,都是在开发者门户中点击操作的步骤,不涉及代码。只有当你选择自己编写机器人的行为时,才需要编码。

客户端ID和机器人令牌有什么区别?客户端ID是公开的,出现在每个邀请链接中,分享是安全的。令牌则是凭证,任何拥有它的人都可以让机器人登录,应当像对待密码一样对待它。

之后可以重命名应用或机器人吗?可以,应用名称和机器人用户名都可以随时在门户中修改,不会失去令牌、所在的服务器,或与其Discord用户ID相关的任何内容。

每个机器人都需要特权Intent吗?不需要。只有读取消息文本(消息内容Intent)或需要成员加入/离开及身份组数据(服务器成员Intent)的机器人才需要开启。仅使用斜杠命令的简单机器人两者都不需要。

创建Discord应用免费吗?是的,创建应用、生成令牌或将其邀请到任何地方都没有费用。运行背后的代码才可能产生费用,除非你使用免费托管,或像Noxyr自定义机器人这样的服务。

如果我丢失了令牌,或怀疑它已泄露怎么办?返回机器人标签页,点击重置令牌。旧的令牌会立即在所有使用它的地方失效,你会得到一个新的令牌,粘贴到需要的地方即可。

应用创建完成后,请参阅我们关于邀请链接和OAuth2范围的指南,以正确构建该链接;或者免费添加Noxyr,无需编写一行代码,就能把你的新应用变成一个功能完整的机器人。