创建 Discord 机器人
创建并连接 Discord 机器人,让 ForwardMsg 为其配置设置,并选择它要发送或读取消息的位置。
从 Discord 复制消息时,您也可以使用自己的账号。 **您无需邀请机器人加入原服务器,无需拥有该服务器,也不需要是管理员。**您的账号只需能够访问想要复制消息的频道。如果您要使用此方式,请先查看连接 Discord 账号。
Discord 机器人可以将复制的文本和受支持媒体(例如图片、视频和文件)发送到您的 Discord 服务器。它也可以转发来自 Discord 来源的 Discord 嵌入内容。在转发选项中选择消息类型;目的地服务器的上传限制仍然适用。如果您想用机器人代替账号读取消息,也可以让机器人读取原始消息。
- **使用账号读取、机器人发送?**只需将机器人邀请到接收副本的服务器。
- **也用机器人读取?**还要将它邀请到原始服务器,并授予它要复制频道的访问权限。
**您无需编写代码,也无需自行托管机器人。**ForwardMsg 会为您运行它。
在 Discord 中创建机器人
- 打开 Discord Developer Portal。
- 选择New Application。
- 输入一个易于识别的名称,例如
Community Forwarder。 - 选择 Create。
- 在应用程序左侧菜单中打开 Bot。
Discord 将机器人的设置称为应用程序。您可以在Bot 页面管理机器人的名称、头像和登录令牌。
复制机器人令牌
机器人令牌相当于机器人的密码,与您的 Discord 个人账号令牌不同。
- 在Bot 页面找到 Token。
- 选择Reset Token以生成可复制的令牌。
- 完成 Discord 的确认步骤。
- 复制令牌并妥善保管。
快捷方式:让 ForwardMsg 配置机器人
您可以跳过下面的手动设置:将令牌粘贴到添加 Discord 机器人中,选择添加,然后完成继续 → 邀请 → 完成步骤。ForwardMsg 会自动配置机器人支持的意图和默认服务器安装设置。您也可以直接在该对话框中邀请机器人。接下来请按照连接机器人以发送消息操作;如果也希望机器人读取消息,请按照连接机器人以读取消息操作。之后请刷新 Developer Portal 查看设置。机器人仍需访问接收频道。
重置或撤销令牌会断开旧连接
如果您重置了 ForwardMsg 中已保存的令牌,旧连接就无法再登录。请使用新令牌再次选择添加 Discord 机器人。如果旧连接负责读取消息,请在来源下选择新连接;如果它负责发送副本,请在所有受影响的路由目的地中替换旧机器人。保存更改并重新启动受影响的自动化。编辑旧连接的名称不会更新其令牌。
接下来的两节介绍在邀请机器人之前,如何自行查看或更改这些设置。
允许机器人读取消息文本
Discord 将这些开关称为意图。对于 ForwardMsg,请启用以下两项意图。无论机器人只发送副本、读取消息,还是两者都做,都建议采用此设置。意图与允许机器人查看或在频道中发帖的权限不同。
- 在 Developer Portal 中打开 Bot。
- 找到Privileged Gateway Intents。
- 开启 Server Members Intent 和 Message Content Intent。
- 如果 Discord 显示保存按钮,请保存更改。
| 意图 | 功能 | 应如何设置 |
|---|---|---|
| Message Content Intent | 允许机器人接收消息文本和内容。 | 无论机器人读取消息、发送副本还是两者都做,ForwardMsg 设置都需要开启。 |
| Server Members Intent | 允许机器人接收服务器成员信息。 | 无论机器人读取消息、发送副本还是两者都做,ForwardMsg 设置都需要开启。 |
选择所需权限
以下是邀请机器人时请求的默认权限。请在使用邀请链接前配置或检查这些权限:
- 在 Developer Portal 中打开Installation。
- 在Installation Contexts下启用 Guild Install。Guild 是 Discord 对服务器的称呼。
- 在Default Install Settings下找到 Guild Install 设置。
- 包含 bot 范围,这样就可以将机器人添加到服务器。ForwardMsg 转发不使用斜杠命令,无需配置命令。
- 检查下方权限。ForwardMsg 的标准邀请会请求这一整组权限。
- 如果 Portal 要求,请保存设置。
标准邀请包含的权限
请保留默认选中的权限,让机器人能够使用您选择的转发功能。部分权限只适用于可选功能;即使您尚未启用这些功能,也可以保留它们。
| 权限 | 机器人可以执行的操作 |
|---|---|
| View Channels / View Channel(查看频道) | 查看机器人要读取或发帖的频道。 |
| 发送消息 | 在接收频道发布复制的文本。 |
| 读取消息历史记录 | 获取较早的消息,包括作为回复上下文的消息。 |
| 附加文件 | 上传图片、视频和其他文件。 |
| 嵌入链接 | 发送嵌入卡片和链接预览。 |
| 管理消息 | 删除其他用户的消息;此权限属于标准消息管理权限组。 |
| 置顶消息 | 启用相应消息操作同步时置顶或取消置顶消息。 |
可选行为权限
标准邀请中也包含以下权限。只有使用相应功能时才需要:
| 权限 | 机器人可以执行的操作 |
|---|---|
| 管理 Webhook | 当启用 webhook使用原作者名称和头像时,创建并管理频道 Webhook。 |
| 在线程中发送消息 | 向机器人有权访问的线程发送副本。 |
| 添加反应 | 启用反应同步时添加反应。 |
| 提及所有人 | 消息格式中使用 @everyone 和 @here 等提及时发送提及。 |
| 使用外部表情符号 | 使用其他服务器中的自定义表情符号。 |
| 使用外部贴纸 | 使用其他服务器中的贴纸。 |
| 发送语音消息 | 发送 Discord 语音消息。 |
| 绕过慢速模式 | 无需等待频道的慢速模式即可发帖。 |
无需为机器人授予管理员权限。安装后,请检查它在服务器和频道中的实际权限。Discord 的权限参考介绍了这些控件。
如果机器人已经在服务器中,更改 Portal 中的默认设置不会更新它在服务器中的现有访问权限。在 Discord 中打开服务器设置 → 角色,选择机器人的角色并检查权限。要检查某个频道,请打开编辑频道 → 权限,查看机器人的角色或单独权限条目。即使服务器角色允许访问,分类和频道规则仍可能拒绝访问。
将机器人安装到服务器
**要发送副本,请将机器人添加到您希望副本到达的服务器。**如果由您的账号读取原始消息,机器人无需加入原服务器。只有当您希望机器人自行读取这些频道时,才需要将其添加到原服务器。
在 ForwardMsg 中选择添加 Discord 机器人时,使用添加到目的地服务器打开邀请链接。如果机器人尚未加入,请选择接收服务器;若要设置机器人读取消息,则选择原服务器。在 Discord 中授权,返回 ForwardMsg 并选择完成。如果机器人已在正确的服务器中,无需再次邀请,直接选择完成即可。
您也可以从 Developer Portal 邀请机器人:
- 在 Developer Portal 中打开Installation。
- 在Install Link下选择 Discord Provided Link。
- 复制链接,在已登录 Discord 的浏览器中打开。
- 选择添加到服务器并选择目标服务器。
- 选择授权并完成 Discord 确认。
- 确认机器人显示在该服务器的成员列表中。
如果您拥有服务器、是管理员或拥有管理服务器权限,就可以邀请机器人。否则请让服务器管理员代为邀请。如果使用自己的账号复制消息,无需在原服务器拥有此权限。
如果 Portal 布局发生变化,请参阅 Discord 的安装指南查看控件位置。
连接机器人以读取消息
- 打开使用 Discord 机器人读取消息的自动化,然后在来源下选择添加 Discord 机器人。
- 粘贴机器人令牌并选择添加。
- 在 ForwardMsg 中保留或更改名称,然后选择继续。
- 如果机器人尚未加入要读取消息的服务器,请使用添加到目的地服务器邀请它,并在 Discord 中授权。
- 返回 ForwardMsg 并选择完成。
- 确认来源下已选中该机器人。
- 选择更新设置。
- 选择启动并等待状态变为运行中。
- 添加机器人需要读取的服务器和频道。
来源是原始消息的位置。请只选择您要监控的频道。
连接机器人以发送消息
如果机器人已保存,请直接选择它并继续选择接收频道,无需再次粘贴令牌。
- 点击编辑器左侧列表中的来源聊天/频道以打开其设置。
- 打开路由。
- 选择添加目的地。
- 如果机器人尚未保存,请选择添加 Discord 机器人。
- 粘贴令牌并选择添加。
- 在 ForwardMsg 中保留或更改名称,然后选择继续。
- 如有需要,使用添加到目的地服务器邀请机器人加入接收服务器,并在 Discord 中授权。
- 返回 ForwardMsg 并选择完成。
- 选择该机器人和接收副本的频道。
- 完成目的地对话框。
- 选择保存更改。
目的地是副本到达的位置。如果机器人有权访问多个频道,它可以向多个频道发送消息。
**在多条转发路由中重复使用同一个机器人。**在其他路由目的地或自动化中选择已保存的机器人即可;无需为每个聊天或路由创建新机器人。请将其邀请到每个接收服务器,并授予相关频道访问权限。
通过自动化发送新的文本消息以检查结果。如果只有一个频道失败,请检查机器人在该频道中的权限。
检查 ForwardMsg 的自动配置
使用添加 Discord 机器人保存令牌后,ForwardMsg 会配置机器人支持的意图、Guild Install 和默认安装设置,使其可以读取并发送消息。
- 返回 Developer Portal 并重新加载页面。
- 打开Bot → Privileged Gateway Intents,检查 Message Content 和 Server Members。
- 打开Installation,检查 Guild Install 及其默认权限。
- 如果尚未邀请机器人,请邀请机器人,然后在 ForwardMsg 中选择接收频道。
您可以直接使用此快捷方式,无需手动更改 Portal 中的每个字段。如果某项设置尚未更新,请按上文手动操作。
Portal 默认设置与服务器访问权限相互独立
自动配置会准备机器人的应用程序设置,但不会邀请机器人加入服务器、分配验证角色或覆盖频道限制。机器人仍须在实际读取或发送消息的服务器中获得访问权限。
机器人已连接但无法发送消息
已连接表示 ForwardMsg 可以使用机器人登录,并不表示每个接收频道都允许它发帖。
- 检查服务器和频道。机器人必须加入接收服务器,并在对应频道拥有查看频道和发送消息权限。线程还需要在线程中发送消息权限。
- **检查验证或门禁机器人。**某些服务器会在成员获得
Verified或Member等角色之前隐藏频道。新邀请的机器人可能不会自动获得该角色。请管理员为机器人分配合适角色,或在接收频道中明确授权。例如,如果只有Verified成员才能在#news中发帖,机器人也需要获得相应访问权限。 - 检查内容类型。上传文件需要附加文件权限,发送嵌入内容需要嵌入链接权限。启用启用 webhook后,还需要管理 Webhook权限。
- **检查令牌。**如果令牌已重置或撤销,请使用新令牌重新添加机器人,并在使用旧连接的地方替换它。
修复访问权限后,请在路由中选择保存更改,如有需要则重新启动自动化,并从来源聊天发送新消息以确认其到达目的地。您可以使用私密测试聊天。
其他检查项请参阅消息送达与权限 → Discord 机器人。
作者名称、回复和置顶
普通机器人消息使用机器人自己的名称和头像。例如,Maya 的副本会显示为由您的机器人 Community Forwarder 发布。消息格式仍可在文本中包含 Maya 的名称。
如果您希望 Discord 帖子本身显示 Maya 的名称和头像,请使用 Webhook 发送。每条复制消息都可以使用其原作者身份,而不是所有帖子都使用同一个机器人头像。
您可以让已连接的机器人自动处理此操作:
- 为机器人在接收频道授予管理 Webhook权限。
- 在 ForwardMsg 中点击左侧列表中的来源聊天以打开其设置;也可以点击全局设置,将此选项应用到所有继承它的聊天。
- 打开高级 → 使用作者名称和头像照片发送。
- 开启启用 webhook。
- 选择保存更改,然后通过自动化发送新消息,检查它在 Discord 中显示的名称和头像。
机器人现在会创建/管理用于发送消息的 Webhook。使用此选项时,无需为每个接收频道手动创建 Webhook。
| 发送方式 | Discord 帖子上的名称和头像 | 原生回复和同步置顶/取消置顶 |
|---|---|---|
| Discord 机器人,关闭“启用 webhook” | 机器人自己的资料 | 具备相应权限并启用镜像设置后可用。 |
| Webhook,开启“启用 webhook” | 原作者的名称和头像 | 不可用:Discord Webhook 无法创建原生回复或置顶/取消置顶消息。 |
需要回复或置顶操作时,请关闭启用 webhook。请参阅消息操作同步和高级设置。
妥善保管令牌
请像密码一样保护机器人令牌
切勿通过聊天、邮件、工单、屏幕截图或共享代码发送机器人令牌。如果令牌泄露,请在 Discord 中重置,并在 ForwardMsg 中使用新令牌重新添加机器人。在所有使用旧连接的地方替换连接、保存设置,并重新启动受影响的自动化。