Forward LogoForwardMsg

创建 Discord 机器人

创建并连接 Discord 机器人,让 ForwardMsg 为其配置设置,并选择它要发送或读取消息的位置。

从 Discord 复制消息时,您也可以使用自己的账号。 **您无需邀请机器人加入原服务器,无需拥有该服务器,也不需要是管理员。**您的账号只需能够访问想要复制消息的频道。如果您要使用此方式,请先查看连接 Discord 账号。

Discord 机器人可以将复制的文本和受支持媒体(例如图片、视频和文件)发送到您的 Discord 服务器。它也可以转发来自 Discord 来源的 Discord 嵌入内容。在转发选项中选择消息类型;目的地服务器的上传限制仍然适用。如果您想用机器人代替账号读取消息,也可以让机器人读取原始消息。

  • **使用账号读取、机器人发送?**只需将机器人邀请到接收副本的服务器。
  • **也用机器人读取?**还要将它邀请到原始服务器,并授予它要复制频道的访问权限。

**您无需编写代码,也无需自行托管机器人。**ForwardMsg 会为您运行它。

在 Discord 中创建机器人

  1. 打开 Discord Developer Portal。
  2. 选择New Application。
  3. 输入一个易于识别的名称,例如 Community Forwarder。
  4. 选择 Create。
  5. 在应用程序左侧菜单中打开 Bot。

Discord 将机器人的设置称为应用程序。您可以在Bot 页面管理机器人的名称、头像和登录令牌。

复制机器人令牌

机器人令牌相当于机器人的密码,与您的 Discord 个人账号令牌不同。

  1. 在Bot 页面找到 Token。
  2. 选择Reset Token以生成可复制的令牌。
  3. 完成 Discord 的确认步骤。
  4. 复制令牌并妥善保管。

快捷方式:让 ForwardMsg 配置机器人

您可以跳过下面的手动设置:将令牌粘贴到添加 Discord 机器人中,选择添加,然后完成继续 → 邀请 → 完成步骤。ForwardMsg 会自动配置机器人支持的意图和默认服务器安装设置。您也可以直接在该对话框中邀请机器人。接下来请按照连接机器人以发送消息操作;如果也希望机器人读取消息,请按照连接机器人以读取消息操作。之后请刷新 Developer Portal 查看设置。机器人仍需访问接收频道。

重置或撤销令牌会断开旧连接

如果您重置了 ForwardMsg 中已保存的令牌,旧连接就无法再登录。请使用新令牌再次选择添加 Discord 机器人。如果旧连接负责读取消息,请在来源下选择新连接;如果它负责发送副本,请在所有受影响的路由目的地中替换旧机器人。保存更改并重新启动受影响的自动化。编辑旧连接的名称不会更新其令牌。

接下来的两节介绍在邀请机器人之前,如何自行查看或更改这些设置。

允许机器人读取消息文本

Discord 将这些开关称为意图。对于 ForwardMsg,请启用以下两项意图。无论机器人只发送副本、读取消息,还是两者都做,都建议采用此设置。意图与允许机器人查看或在频道中发帖的权限不同。

  1. 在 Developer Portal 中打开 Bot。
  2. 找到Privileged Gateway Intents。
  3. 开启 Server Members Intent 和 Message Content Intent。
  4. 如果 Discord 显示保存按钮,请保存更改。
意图功能应如何设置
Message Content Intent允许机器人接收消息文本和内容。无论机器人读取消息、发送副本还是两者都做,ForwardMsg 设置都需要开启。
Server Members Intent允许机器人接收服务器成员信息。无论机器人读取消息、发送副本还是两者都做,ForwardMsg 设置都需要开启。

选择所需权限

以下是邀请机器人时请求的默认权限。请在使用邀请链接前配置或检查这些权限:

  1. 在 Developer Portal 中打开Installation。
  2. 在Installation Contexts下启用 Guild Install。Guild 是 Discord 对服务器的称呼。
  3. 在Default Install Settings下找到 Guild Install 设置。
  4. 包含 bot 范围,这样就可以将机器人添加到服务器。ForwardMsg 转发不使用斜杠命令,无需配置命令。
  5. 检查下方权限。ForwardMsg 的标准邀请会请求这一整组权限。
  6. 如果 Portal 要求,请保存设置。

标准邀请包含的权限

请保留默认选中的权限,让机器人能够使用您选择的转发功能。部分权限只适用于可选功能;即使您尚未启用这些功能,也可以保留它们。

权限机器人可以执行的操作
View Channels / View Channel(查看频道)查看机器人要读取或发帖的频道。
发送消息在接收频道发布复制的文本。
读取消息历史记录获取较早的消息,包括作为回复上下文的消息。
附加文件上传图片、视频和其他文件。
嵌入链接发送嵌入卡片和链接预览。
管理消息删除其他用户的消息;此权限属于标准消息管理权限组。
置顶消息启用相应消息操作同步时置顶或取消置顶消息。

可选行为权限

标准邀请中也包含以下权限。只有使用相应功能时才需要:

权限机器人可以执行的操作
管理 Webhook当启用 webhook使用原作者名称和头像时,创建并管理频道 Webhook。
在线程中发送消息向机器人有权访问的线程发送副本。
添加反应启用反应同步时添加反应。
提及所有人消息格式中使用 @everyone 和 @here 等提及时发送提及。
使用外部表情符号使用其他服务器中的自定义表情符号。
使用外部贴纸使用其他服务器中的贴纸。
发送语音消息发送 Discord 语音消息。
绕过慢速模式无需等待频道的慢速模式即可发帖。

无需为机器人授予管理员权限。安装后,请检查它在服务器和频道中的实际权限。Discord 的权限参考介绍了这些控件。

如果机器人已经在服务器中,更改 Portal 中的默认设置不会更新它在服务器中的现有访问权限。在 Discord 中打开服务器设置 → 角色,选择机器人的角色并检查权限。要检查某个频道,请打开编辑频道 → 权限,查看机器人的角色或单独权限条目。即使服务器角色允许访问,分类和频道规则仍可能拒绝访问。

将机器人安装到服务器

**要发送副本,请将机器人添加到您希望副本到达的服务器。**如果由您的账号读取原始消息,机器人无需加入原服务器。只有当您希望机器人自行读取这些频道时,才需要将其添加到原服务器。

在 ForwardMsg 中选择添加 Discord 机器人时,使用添加到目的地服务器打开邀请链接。如果机器人尚未加入,请选择接收服务器;若要设置机器人读取消息,则选择原服务器。在 Discord 中授权,返回 ForwardMsg 并选择完成。如果机器人已在正确的服务器中,无需再次邀请,直接选择完成即可。

您也可以从 Developer Portal 邀请机器人:

  1. 在 Developer Portal 中打开Installation。
  2. 在Install Link下选择 Discord Provided Link。
  3. 复制链接,在已登录 Discord 的浏览器中打开。
  4. 选择添加到服务器并选择目标服务器。
  5. 选择授权并完成 Discord 确认。
  6. 确认机器人显示在该服务器的成员列表中。

如果您拥有服务器、是管理员或拥有管理服务器权限,就可以邀请机器人。否则请让服务器管理员代为邀请。如果使用自己的账号复制消息,无需在原服务器拥有此权限。

如果 Portal 布局发生变化,请参阅 Discord 的安装指南查看控件位置。

连接机器人以读取消息

查找位置
打开自动化 → 自动化设置 → 来源 → Discord 机器人 → 添加 Discord 机器人
  1. 打开使用 Discord 机器人读取消息的自动化,然后在来源下选择添加 Discord 机器人。
  2. 粘贴机器人令牌并选择添加。
  3. 在 ForwardMsg 中保留或更改名称,然后选择继续。
  4. 如果机器人尚未加入要读取消息的服务器,请使用添加到目的地服务器邀请它,并在 Discord 中授权。
  5. 返回 ForwardMsg 并选择完成。
  6. 确认来源下已选中该机器人。
  7. 选择更新设置。
  8. 选择启动并等待状态变为运行中。
  9. 添加机器人需要读取的服务器和频道。

来源是原始消息的位置。请只选择您要监控的频道。

连接机器人以发送消息

查找位置
自动化编辑器 → 点击左侧列表中您监控的来源聊天以打开其设置 → 路由 → 添加目的地 → Discord 机器人

如果机器人已保存,请直接选择它并继续选择接收频道,无需再次粘贴令牌。

  1. 点击编辑器左侧列表中的来源聊天/频道以打开其设置。
  2. 打开路由。
  3. 选择添加目的地。
  4. 如果机器人尚未保存,请选择添加 Discord 机器人。
  5. 粘贴令牌并选择添加。
  6. 在 ForwardMsg 中保留或更改名称,然后选择继续。
  7. 如有需要,使用添加到目的地服务器邀请机器人加入接收服务器,并在 Discord 中授权。
  8. 返回 ForwardMsg 并选择完成。
  9. 选择该机器人和接收副本的频道。
  10. 完成目的地对话框。
  11. 选择保存更改。

目的地是副本到达的位置。如果机器人有权访问多个频道,它可以向多个频道发送消息。

**在多条转发路由中重复使用同一个机器人。**在其他路由目的地或自动化中选择已保存的机器人即可;无需为每个聊天或路由创建新机器人。请将其邀请到每个接收服务器,并授予相关频道访问权限。

通过自动化发送新的文本消息以检查结果。如果只有一个频道失败,请检查机器人在该频道中的权限。

检查 ForwardMsg 的自动配置

使用添加 Discord 机器人保存令牌后,ForwardMsg 会配置机器人支持的意图、Guild Install 和默认安装设置,使其可以读取并发送消息。

  1. 返回 Developer Portal 并重新加载页面。
  2. 打开Bot → Privileged Gateway Intents,检查 Message Content 和 Server Members。
  3. 打开Installation,检查 Guild Install 及其默认权限。
  4. 如果尚未邀请机器人,请邀请机器人,然后在 ForwardMsg 中选择接收频道。

您可以直接使用此快捷方式,无需手动更改 Portal 中的每个字段。如果某项设置尚未更新,请按上文手动操作。

Portal 默认设置与服务器访问权限相互独立

自动配置会准备机器人的应用程序设置,但不会邀请机器人加入服务器、分配验证角色或覆盖频道限制。机器人仍须在实际读取或发送消息的服务器中获得访问权限。

机器人已连接但无法发送消息

已连接表示 ForwardMsg 可以使用机器人登录,并不表示每个接收频道都允许它发帖。

  • 检查服务器和频道。机器人必须加入接收服务器,并在对应频道拥有查看频道和发送消息权限。线程还需要在线程中发送消息权限。
  • **检查验证或门禁机器人。**某些服务器会在成员获得 Verified 或 Member 等角色之前隐藏频道。新邀请的机器人可能不会自动获得该角色。请管理员为机器人分配合适角色,或在接收频道中明确授权。例如,如果只有 Verified 成员才能在 #news 中发帖,机器人也需要获得相应访问权限。
  • 检查内容类型。上传文件需要附加文件权限,发送嵌入内容需要嵌入链接权限。启用启用 webhook后,还需要管理 Webhook权限。
  • **检查令牌。**如果令牌已重置或撤销,请使用新令牌重新添加机器人,并在使用旧连接的地方替换它。

修复访问权限后,请在路由中选择保存更改,如有需要则重新启动自动化,并从来源聊天发送新消息以确认其到达目的地。您可以使用私密测试聊天。

其他检查项请参阅消息送达与权限 → Discord 机器人。

作者名称、回复和置顶

普通机器人消息使用机器人自己的名称和头像。例如,Maya 的副本会显示为由您的机器人 Community Forwarder 发布。消息格式仍可在文本中包含 Maya 的名称。

如果您希望 Discord 帖子本身显示 Maya 的名称和头像,请使用 Webhook 发送。每条复制消息都可以使用其原作者身份,而不是所有帖子都使用同一个机器人头像。

您可以让已连接的机器人自动处理此操作:

  1. 为机器人在接收频道授予管理 Webhook权限。
  2. 在 ForwardMsg 中点击左侧列表中的来源聊天以打开其设置;也可以点击全局设置,将此选项应用到所有继承它的聊天。
  3. 打开高级 → 使用作者名称和头像照片发送。
  4. 开启启用 webhook。
  5. 选择保存更改,然后通过自动化发送新消息,检查它在 Discord 中显示的名称和头像。

机器人现在会创建/管理用于发送消息的 Webhook。使用此选项时,无需为每个接收频道手动创建 Webhook。

发送方式Discord 帖子上的名称和头像原生回复和同步置顶/取消置顶
Discord 机器人,关闭“启用 webhook”机器人自己的资料具备相应权限并启用镜像设置后可用。
Webhook,开启“启用 webhook”原作者的名称和头像不可用:Discord Webhook 无法创建原生回复或置顶/取消置顶消息。

需要回复或置顶操作时,请关闭启用 webhook。请参阅消息操作同步和高级设置。

妥善保管令牌

请像密码一样保护机器人令牌

切勿通过聊天、邮件、工单、屏幕截图或共享代码发送机器人令牌。如果令牌泄露,请在 Discord 中重置,并在 ForwardMsg 中使用新令牌重新添加机器人。在所有使用旧连接的地方替换连接、保存设置,并重新启动受影响的自动化。