此插件是自动运行的,没有任何命令。如果您正在寻找通用的 Discord 机器人框架,请查看 @merefield 的 机器人构建工具包,本插件即基于此构建。
Discord 同步 将 Discourse 论坛与 Discord 服务器同步 
此插件允许在 Discourse 论坛实例与 Discord 服务器之间同步某些与用户相关的内容。它将创建一个 Discord 机器人来处理所有权限,并根据服务器中的一些操作触发同步。
功能
-
将 Discourse 群组同步到 Discord 角色
它将根据用户在 Discourse 中有权访问的群组,自动管理 Discord 服务器中的角色。-
已验证角色
您可以添加一个“已验证角色”,该角色将授予所有已链接 Discord 账户的 Discord 用户。 -
安全角色
由于此插件会强制 Discord 中的角色与 Discourse 中的群组保持一致,您可以设置一个角色列表,机器人将忽略这些角色,允许您在 Discord 服务器中手动管理它们。
-
-
将 Discourse 用户名同步到 Discord 昵称
如果您希望通过论坛用户名来识别用户,可以强制他们的 Discord 服务器昵称与 Discourse 中的用户名保持一致。
触发器
在以下情况下,插件将执行完整的 Discourse 到 Discord 同步(昵称和角色):
- Discourse
- 用户被添加到群组
- 用户被从群组中移除
- 用户资料已更新
旨在用于用户名到昵称的同步 - 用户已通过身份验证
仅当身份验证提供商为 Discord 时才会运行,以确保在链接账户后立即执行首次同步
- Discord
- 用户加入 Discord 服务器
它将在数据库中搜索具有给定 Discord ID 的用户,然后运行同步任务
- 用户加入 Discord 服务器
安装
此插件依赖 Discord OAuth2 来识别和链接 Discourse-Discord 账户。如果您不希望允许用户使用 Discord 登录,但仍希望保持账户链接功能,请查看 该主题的解决方案。
先决条件
此插件需要 libsodium(Discord Ruby gem 所必需)。要安装它,请修改您的 .yml 文件并添加以下代码:
hooks:
before_code:
- exec:
cmd:
- apt-get update
- apt-get install -y libsodium-dev
安装步骤
- 按照 如何安装插件 的标准指南,使用此仓库 URL:
https://github.com/barreeeiroo/discourse-discord-sync.git - 按照 此指南 在您的 Discourse 实例中设置“使用 Discord 登录”。
- 在 Discord 开发者门户中,进入 Bot 部分,并将其添加到您的服务器。确保授予它尽可能高的角色权限。
- 在 Discourse 的插件设置中,将
discord sync token设置为上一步中显示的机器人令牌。
配置选项
discord sync enabled:是否启用集成discord sync token:来自 Discord 的机器人令牌discord sync prefix:命令前缀(目前仅为!ping)discord sync admin channel id:用于发布日志消息(昵称更改、角色更改)的频道 IDdiscord sync username:如果为 true,则将所有 Discord 服务器昵称同步到其 Discourse 用户名discord sync verified role:要添加到所有拥有 Discourse 账户的用户的角色discord sync safe roles:机器人将忽略并标记为在 Discord 中手动授予的角色列表
操作指南
要链接账户,如果您允许用户使用 Discord 进行身份验证,他们只需使用该提供商即可。如果不允许,他们必须进入 账户偏好设置,向下滚动到 关联账户,并在 Discord 行中点击 连接。
实时演示
我们目前在 Kodular Community 的 Discourse 实例中使用此插件,其 Discord 服务器位于 kodul.ar/discord:
致谢
-
Discourse Bot,由 @merefield 制作
非常感谢 Robert 提供了本插件的骨架。这确实帮助奠定了整个插件的基础,使得在 Discourse 实例中运行 Discord 机器人成为可能(并且对他关于安装libsodium的技巧表示赞赏!)。 -
Discourse Discord Sync,由 @angus 制作
一种无需任何机器人即可将信任级别同步到 Discord 角色的替代方案。 -
使用 Discord 登录,由 Discourse 团队制作
如果没有 Discord OAuth2 集成(以前是一个插件)来链接 Discourse 和 Discord 账户,本插件将无法实现。 -
discordrb
本插件依赖discordrbgem,它允许使用 Ruby 连接到 Discord API。