哎呀,我从主帖中误删了错误的链接。(当时有两个插件,我本应删除 OAuth 插件,却误删了机器人的链接!)
请尽快卸载该插件,因为 Core 现已原生支持 Discord OAuth。
机器人插件是 THIS one:
我已相应修改了主帖,对此非常抱歉!!
哎呀,我从主帖中误删了错误的链接。(当时有两个插件,我本应删除 OAuth 插件,却误删了机器人的链接!)
请尽快卸载该插件,因为 Core 现已原生支持 Discord OAuth。
机器人插件是 THIS one:
我已相应修改了主帖,对此非常抱歉!!
我们是否了解,能否让该插件在用户加入群组时自动更新用户,而不是手动同步?此外,是否有可能指定要同步的群组/角色,而不是让插件自行接管或创建角色?
这是第一次有人提出这个请求,所以你可以想象,它甚至还没有被列入待办事项。
这会比较棘手,因为机器人运行在独立的线程上。你需要添加一个方法来向机器人发送消息,并确保它正在监听该请求。这在技术上是一个有趣的练习,但并不简单。
或者,也许更好的方式是探索直接调用 API 的替代方案,而不是使用机器人。然后你需要决定是否有必要基于独立调用开发一个不同的插件,而不是依赖机器人。
这倒不是个坏主意,但出于好奇,你为什么需要它们是不同的呢?
这个方案更实际。
PR 已接受。不幸的是,在没有资金支持的情况下,我用于开发重要功能的时间非常有限。
目前看来,角色是基于“名称”而不是“标题”来设置的。这意味着我在 Discord 上的角色会出现类似“dashing”且没有空格的情况。因此,一个替代方案是让角色基于“全名”或默认标题,而不是仅基于名称。
此外,Discourse 上可能有一些群组,我并不希望将它们与 Discord 同步。
感谢大家的回复 ![]()
这是有意为之,以避免依赖描述字段,因为描述字段可能:
a) 包含空格
b) 不唯一
(在计算机科学中,这通常是个糟糕的做法)
不过,如果存在一种安全的方法来改进这一点,我非常乐意听取建议。我也明白这样“看起来”不太美观 ![]()
该插件完全可以在管理员的酌情决定下,增加额外功能以禁用特定群组的同步。欢迎提交相关代码请求(PR)。
在探索 API 方法的同时,我们能否让机器人按预定时间自动同步?例如每小时或每 24 小时检查一次?
我认为完全可以添加“每隔 x 小时重复执行一次”之类的功能。
不过问题在于,每次机器人宕机(例如重启时),该功能都会中断。
绝对最佳的方案是以下两者之一:
a) 为该插件添加一个独立的 API 调用,并关联到 Sidekiq 任务;或
b) 编写一个新插件,使用常规 API 调用而非依赖机器人(并在其中集成批量同步功能)。
无论哪种方案,都需要赞助支持或提交 Pull Request。
有道理。谢谢你的帮助。
您好。
我目前正在使用您的插件,一切已处于可运行状态。看起来非常棒,做得好!
不过,我有几个问题:现在所有功能都已正常运行,我需要让用户通过 Discord OAuth 登录。这会创建一个新账户。
我该如何最好地管理这种情况?我是否需要合并新旧账户?我尝试用管理员账户进行操作,但在手动执行 !discsync 命令时收到错误提示:“您没有权限执行 discsync 命令!”
此外,它尚未从 Discourse 复制任何角色。
需要说明的是,我的 Discord 账户在选项中显示为已关联账户。
提前感谢您的帮助!
感谢您对插件的关注!
这不是插件的功能,而是核心功能。Discord OAuth 是 Discourse 默认自带的:
无论您是否将此插件添加到 Discourse,上述设置都会出现。
如果您通过社交账户登录,只要注册邮箱一致,系统就会识别该账户,不会创建新账户。但如果用户用于 Discord 注册的邮箱与 Discourse 不同,系统自然无法判断是同一用户,因此会创建新账户。
您指的是 Discord 服务器上的管理员账户吗?另外,您是否已授权该机器人?
执行 Ping! 的结果是什么?
同意这一点。在最坏的情况下,我可以合并电子邮件不匹配的账户。
是的,没错。我是 Discord 和 Discourse 实例的所有者。“Ping!” 的结果是 “Pong!”。没有任何角色从 Discourse 迁移到 Discord。
机器人已在我的 Discord 服务器上,并拥有管理员权限。能否请您澄清一下“授权”具体指什么?
您需要在浏览器中授权机器人,请参阅 Discord 开发者门户
机器人设置完成后,复制令牌。稍后在 Discourse 中需要输入该令牌。
您是否已完成此步骤?(只是确认所有前提条件,您几乎肯定已经完成了。)
是的,我有 ![]()
我怀疑你在 Discord 服务器上的权限或机器人的权限设置可能有问题。我目前正在同时处理几十个插件,所以正在通过此插件重温相关知识。我对这个插件的上次修改已经是很久以前的事了!
收到!我这边快速检查了一下,供您知晓:我被列为服务器所有者,并拥有管理员权限。
编辑:能否明确一下机器人需要哪些权限?它目前被列为管理员(不过这是通过角色授予的,而非 OAuth 邀请)。
能否检查一下频道权限?Discord 上的频道权限会覆盖服务器权限。
是的,它在频道里运行正常。里面没有任何会阻止其发送或接收消息的权限设置。
它可以发送 Pong!,但它告诉我我没有启动 !discsync 所需的权限。
它可以发送 Pong!,并提示我没有运行 !discsync 所需的权限。
好的,我正在尝试复现,但到目前为止两个命令都能正常运行。