我很乐意邀请你加入我的实例!我不确定你的插件是否有日志记录功能,如果有,我可以发给你,希望能帮上忙?
编辑:当你授权机器人时,分配了哪些权限?
我很乐意邀请你加入我的实例!我不确定你的插件是否有日志记录功能,如果有,我可以发给你,希望能帮上忙?
编辑:当你授权机器人时,分配了哪些权限?
该机器人需要管理员权限:
您需要按照此处(以及主题帖)中的说明,通过浏览器授予权限:
链接格式类似于:https://discord.com/api/oauth2/authorize?client_id=YOURCLIENTID&scope=bot&permissions=8
您的问题几乎可以肯定是 Discord 端的问题,因为 Discourse 机器人服务器似乎正在运行(您已通过 Ping! 命令证实了这一点),因此 Discourse 的日志无关紧要。
我刚刚在最新版本的 Discourse 上重新测试了该插件,一切正常(我更新了一些 gem 到更现代的版本以确保与其他插件的兼容性,但这与您的问题无关)。
是的,所以我已经重新邀请了几次,但没有任何变化。它是一个管理员,拥有机器人权限。我是邀请它加入 Discord 的人,也是该 Discord 服务器的所有者。但它就是无法识别我,并返回“您没有权限执行命令 discsync!”
真让人摸不着头脑,真倒霉!
太好了!看来我不知怎么把管理员组 ID 弄错了!看起来我复制粘贴时可能漏掉了一个数字……
所以作为后续问题,我现在正尝试根据用户在 Discourse 中的信任等级,在 Discord 中为他们分配颜色。为了让信任等级同步过去,我推测命令应该是:
!discsync false, 0, true
这个对吗?它返回了以下内容:
编辑:如果运行不带逗号的命令,结果也是一样的,即:
!discsync false 0 true
我这边已经搞定了。非常感谢,真的帮了大忙。
作为回报,我能否帮上忙,把我学到的一些内容写进你们的指南中?如果不行也没关系;我只是希望能把你们给予的支持传递下去。
您太客气了。我很乐意请您编辑。您应该已经可以操作了吧?这是一个 wiki。您也帮我重温了记忆 ![]()
我不太需要角色同步,但如果有一个 Discord 机器人能在论坛发布新主题时自动在 Discord 服务器的特定频道中发帖,那就太好了。有没有这样的插件?
是的,这个插件可能不是解决该问题的合适工具。该机器人由您的 Discourse 驱动,可以访问您的 Discourse 数据(在允许且通过命令提示的情况下),但它运行在独立的线程中,因此不会接收 Discourse 事件的信号。
我想或许可以在将来对其进行扩展,例如监听特定分类下的新主题。虽然这并不是该架构的最佳应用场景,但我们欢迎提交 Pull Request。
听起来您需要进一步调查:
或者
是的,我调查了这两个选项。第一个选项 Zapier 并非免费。你可以创建最多 5 个免费的 Zap,但它们仅限于单步操作。正如那个帖子中提到的,因此提出的替代方案是 discourse-chat-integration,据称这是一个官方插件。我认为这是实现我目标的最接近的方法。
最后一个选项似乎是一个 RSS 源插件:
更新:在学会正确设置规则并配置 Webhook 后,chat-integration 确实实现了我想要的功能!谢谢。
嘿 @merefield,
再次感谢你提供这个插件!
我按照文档中的描述安装了所有内容。我使用的命令是 !discsync,一切看起来都很正常。![]()
不过,对于某些用户(并非所有用户),我在他们的所有组中都遇到了以下错误:
Discourse Sync: [11/31] 正在将成员 'MaxMustermann' 添加到 'Member'
Discourse Sync: 但我似乎没有权限执行此操作!
服务器 XYZ (ID: 123123123123) 上的命令 ^add_role 出错,nil:NilClass 没有定义的方法 add_role
其他用户却能够成功同步到同一个组 ![]()
这表明该用户在 Discourse 中的 provider_uid 尚未设置。请进行排查。
顺便提一下,你做得很好。这项设置相当复杂,并非人人能胜任!:)。
我在 Knowledge Explorer 插件中运行了以下查询:
SELECT *
FROM user_associated_accounts u
WHERE u.provider_name = 'discord'
由于某些原因我无法发布结果
,但我已检查了每个用户的 provider_uid,每个用户都有对应的值。还有什么其他方面可以调试吗?
那么,下一个最可能的问题是当前的 Discord 用户 ID(UID)映射错误。
也就是说,Discourse 中的数据未映射到 Discord 中有效的 UID。
请手动检查该用户在 Discord 中的记录,并确认其是否正确。
嘿,我可以确认这一点。该用户在 Discourse 中的 UID 与在 Discord 中的不同。
如何复现此问题?
能否删除该关联,并提示用户重新关联 Discord?如果问题再次出现,是否说明社交登录功能存在 Bug?
嘿,
我想跟进一下。我与遇到这些问题的用户进行了沟通,我们已确定了可能的问题原因。
该用户使用其旧 Discord 账号注册,但该账号并未加入服务器。因此,同步机器人可能无法找到该 Discord 用户,从而导致报错。
感谢您的澄清。能否确认您是如何解决的?您是否先删除了他的关联,然后让他重新关联?
我们就是这么做的。![]()