如何在 discourse 中调用第三方 API

你好,

我想知道,是否有一种方法可以在 Discourse 中调用使用 Node.js 创建的第三方自定义 API?

欢迎提供反馈。

谢谢

只要所有交互都通过 HTTP 进行,API 是用什么语言编写的并不重要。

您可能需要在主题组件中编写一些 JavaScript Ajax 调用,或者在适当的情况下,使用 Ruby 编写新的插件代码,通过合适的 Ruby 库(如 Excon 或 Httparty)发起 HTTP 请求。

感谢回复 @merefield,我很感激您的反馈。
我是 Discourse 开发的新手。此前,我曾为基于 Node.js 的 NodeBB 社区 CMS 做过开发工作。在那里,我进行了大量定制(例如创建自定义 API 来调用 Zoho 工单数据、获取 Vimeo 视频列表等)。因此,我希望能实现相同的功能,或者在 Discourse 中创建相应的 API,并将响应数据渲染到某些静态页面上展示给用户。

谢谢!

请使用后端发起调用:

  • 如果需要确保安全性,
  • 如果需要后端处理结果
  • 如果调用可能耗时较长

如果是耗时较长的操作,请将其放入 Job 中。

这将需要在插件中编写一些 Ruby 代码,并使用上述提到的某个 gem。

入门 Discourse 插件开发并非易事,因为这是一个庞大、复杂且带有强烈设计理念的平台,但这里有一些官方优质指南,还有大量现有的开源插件可供参考(参见 Customization > Plugin 及指向 GitHub 的链接)。尝试找一个功能相似的项目,看看它是如何在代码中实现的。

如果改动较为表面,可以考虑使用主题组件(Theme Component)。查看这里的主题开发指南

可以参考一些示例,例如这个:discourse-tc-quote-of-the-day/get-quote.js.es6 at master · merefield/discourse-tc-quote-of-the-day (github.com)

好的 @merefield,我正在查看。感谢您的反馈。