是否有办法在 Discourse 中创建一个机器人,以类似我构建的许多 Discord 机器人的方式回复我的命令?
基本上,我知道可以安装各种插件,但在我看来,如果我能有一个机器人来监听评论中的文本,而不是尝试安装容易弄乱东西的插件,尤其是当维护者决定不再维护该插件时,维护起来会容易得多。
1 个赞
您将需要一个插件。
请参考我的 Frotz 插件作为示例/起点
像这样的仅限 API 的插件往往会随着时间的推移更加稳定,所以不用担心不稳定。无论如何,所有代码都需要维护。我随着时间的推移对 Frotz-bot 进行了最小的更改。
请查看我的 Discord 机器人插件,了解如何针对新帖子等事件编写代码:
您的需求可能可以通过以下方式满足:
如果您想更好地控制代码的命运,请自行维护一个 fork/repo。
6 个赞
如果你真的想让它完全独立,你可以结合使用 webhook 将事件传递给你的机器人,以及 HTTP 请求 API 让你的机器人对 Discourse 进行更改。
Discourse API 文档
正如 @merefield 所暗示的,可以创建不覆盖核心功能的插件,而是接收事件通知并与核心 API 交互,这样更容易维护,并且不太可能产生不必要的副作用。
采用 webhook/API 路线还需要设置一个堆栈来运行你的机器人,并确保它在 Discourse 可用的同时始终可用,这两者都可以通过加载到 Discourse 中的插件免费获得。
编写插件需要学习 Ruby 并熟悉 Discourse 类,但如果你已经能够用其他东西编写和维护机器人,我相信你可以很快学会所需的东西。
3 个赞
fbpbdmin
(deepblue)
6
可以在帖子/评论中完成,
可以在群聊中设置机器人吗?
我看到有传入 Webhook 可以将消息传递到群聊,
但似乎没有办法让机器人帐户收听聊天消息,然后相应地执行操作……?
是的,例如:
支持群聊(以及主题、私信等)
(这是一个纯粹的 AI 机器人,没有命令(界面是 100% 自然语言,因此不需要命令),但结构将是相同的)
1 个赞
fbpbdmin
(deepblue)
8
感谢 @merefield
使用插件,可以为群聊消息添加事件处理程序/监听器。
我有一个 REST 端点服务器,可以处理 webhook 事件,这对于添加机器人到帖子/评论非常有效。
但遗憾的是,群聊消息没有触发事件,这行不通…… 