oshyan
(Oshyan Greene)
2021 年8 月 25 日 20:14
1
正如 Integromat 在此处提到的:
看来,API 在暴露话题标签分配方面或许可以进行一些改进。具体来说,就是能够查询话题上新增的标签。我个人的使用场景是:利用 Discourse 中的标签功能来标记某些话题,以便将其导出到另一个系统(例如任务管理器),而我计划使用 Integromat 来完成这一操作。但这同样适用于任何通过 API 查询以确定是否已为某个话题添加了“创建任务”标签,并据此采取相应行动的系统。
据我了解,当前的 API 并不方便支持这一功能。虽然可以通过 Webhook 作为一种变通方案,但除非我理解有误,否则直接的 API 调用会更加清晰和简便。
感谢您的考虑!希望我把这个问题发到了正确的地方。
Falco
(Falco)
2021 年8 月 25 日 20:44
2
oshyan:
查询主题中新添加标签的能力。
在主题中添加标签将触发 topic webhook 类,您可以监听它以监控主题中任何新添加的标签。您甚至可以在 Discourse UI 中将其过滤到特定标签,以保持事件数量较低。
1 个赞
oshyan
(Oshyan Greene)
2021 年8 月 25 日 21:03
3
感谢您的快速回复!所以 Integromat 建议的“变通方法”确实是处理此问题的正确 方式吗?
不幸的是,我对 API 与 Webhooks 等方面的知识了解有限,但我特别关注的是 Fibery 与 Discourse 之间的集成。该集成实际上完整镜像了 Discourse 的内容,但将其置于一个支持数据任意互连(例如主题、用户等)的系统中,以支持更高级别的项目和反馈管理。据我所知,他们使用的是 API 进行集成:
因此,如果他们 希望在其集成中支持标签(目前尚不支持),包括检测标签的添加/删除,那么利用当前的 API 是否可行?如果不行,这是否意味着 API 的标签支持功能仍有待进一步扩展,以发掘更多潜在用途?
再次说明,我意识到自己可能因无知而提出了显而易见的问题。也许在 API 中公开这些功能非常困难或负担过重,或者出于某些原因根本不合理。但希望这能很容易得到澄清。
Falco
(Falco)
2021 年8 月 25 日 21:12
4
API 调用允许外部服务随时调用 Discourse,以从中提取数据。
然而,如果该服务希望响应 Discourse 中的事件,它们就需要定期轮询变更。如果要监控或轮询的“事物”很多,这种方式要么浪费资源,要么不切实际。
网络钩子(webhooks)允许 Discourse 在每次发生新事件时轻轻“提醒”该外部服务,这样外部服务只需在有任务需要处理时才执行它们的工作 。该服务可以依赖网络钩子的负载信息(如果信息足够),或者利用它来触发额外的 API 调用来执行必要的任务。因此,API 和网络钩子系统是相辅相成的。
1 个赞
oshyan
(Oshyan Greene)
2021 年8 月 25 日 21:53
6
太好了,这很有帮助。那么,假设您正在将 Discourse 镜像到这个外部系统(Fibery)。如果我理解正确,使用 API 来最初收集所有主题数据等是合适的。但如果您希望随时间维护这些数据(例如类别或标签的变更),您就需要使用 Webhooks 来及时了解这些变更,对吗?如果是这样,那么获取全新主题的数据该怎么做呢?是通过 API 还是 Webhook?换个说法,是否只有将 API 用于一次性拉取以填充镜像,然后持续使用 Webhooks 来保持所有内容的更新才有意义?还是说需要两者结合?如果是结合,这种组合是如何运作的?
oshyan
(Oshyan Greene)
2021 年9 月 8 日 23:01
7
我很希望能就此话题彻底厘清,并完全理解其应有的运作方式。我正与 Fibery 团队协作,希望能推动他们也将此功能实现。因此,如果您能抽空回答我剩余的问题,我将不胜感激。