您现在可以通过 Make 集成 Discourse。Make 是一个无代码集成平台,您可以轻松地将几乎任何应用程序或 API 连接到 Discourse。Make 上的 Discourse 应用包含多个模块(操作、触发器和搜索),使您能够自动化 Discourse 中的通信,并自动同步数据。

Discourse 模块使您能够监控、创建、更新、检索或删除 Discourse 账户中的帖子和主题。可用的触发器可以监视 Discourse 上的帖子、主题和私信,然后将数据传输并存储到另一个应用程序中。
Make 允许您构建任何您能想象到的集成。使用可视化构建器,您可以拖放任意数量的应用程序或步骤,以模拟实际的工作流程。目前已有超过 700 个可用应用程序,以及多种通用应用程序,允许您通过 HTTP/JSON 连接到任何 API。
查看完整的 Discourse 模块列表和 预设集成模板,或点击下方的截图查看场景:
这些预定义模板使创建场景变得更加容易。Make 向导将逐步引导您完成构建过程。当然,您始终可以扩展和自定义场景以满足您的个人需求,或者创建您自己的场景。
开始之前,您需要 注册 一个 Make 账户,然后与您的 Discourse 账户建立连接。注册并登录后,请按照此 分步指南 操作。
开始创建场景(场景是 Make 术语,指集成)时,您将进入可视化场景构建器。首先选择您想要的 Discourse 操作,然后系统会提示您创建连接。要将您的 Discourse 账户连接到 Make,您需要获取 API 密钥,并将其插入 Make 的“创建连接”对话框中。
功能
- 当创建新帖子时检索帖子详情
- 检索跨主题的最新帖子列表
- 检索帖子详情
- 更新现有帖子
- 删除现有帖子
- 当创建新主题时检索主题详情
- 检索主题列表
- 检索主题详情
- 允许您更新现有主题的标题和/或类别
- 删除现有主题
- 当收到新私信时检索消息详情
- 检索您账户中的私信
- 创建帖子、主题或私信
- 允许您执行自定义 API 调用
安装:按照 插件安装指南 将 Discourse 连接到 Make
配置
1. 登录您的 Discourse 账户。
2. 打开右上角的菜单。
3. 导航至 管理 > API。

4. 点击“新建 API 密钥”按钮。
5. 按如下方式设置 API 密钥配置:
- 描述:输入 API 密钥的名称。
- 用户级别:选择“单个用户”选项,以将通过 API 的访问权限限制为下方“用户”字段中指定的用户。
- 用户:选择您希望授予 API 访问权限的用户。您输入时将显示可选择的用户名。
- 全局密钥(允许所有操作):启用此选项以允许所有操作。否则,定义您希望为 API 访问启用的特定范围。
6. 点击“保存”按钮并复制提供的 API 密钥。
7. 前往 Make 并打开 Discourse 模块的“创建连接”对话框。填写以下字段:
- 连接名称:输入您 Discourse 账户连接的名称。
- 主机 URL:选择您的 Discourse 域名 URL(包括 HTTPS),例如 https://.discourse.group
- API 密钥:输入您在步骤 6 中复制的 API 密钥。
- API 用户名:输入分配给该 API 密钥的用户名。
8. 点击“继续”按钮以建立连接。
现在,您可以继续设置模块,并以类似方式连接您的其他应用程序。如果您需要帮助设置集成,可以通过提交工单联系 Make 支持团队。
16 个赞
不是……是 Michaela Staffova 吗?Integromat 的通才解决方案专家?
5 个赞
Michaela
(Michaela Štaffová)
4
没错
我非常高兴能为 Integromat 工作,同时也觉得它非常棒 
4 个赞
bartv
(Bart )
5
这是我喜欢的自动化平台👏 我已经用它配合 Discourse API 很长时间了——我想我现在可以迁移一些模块了🙂
8 个赞
感谢 @bartv 持续给予的积极反馈!我们也看到了您最近发布的关于我们的帖子 
3 个赞
Bill
(Bill)
7
与 Zapier 相比,这里的定价非常实惠,免费套餐也更优。我打算试用一下,以测试其与我社区可能的功能集成。我希望将 Discourse 与 Telegram 群组的通讯进行链接。
2 个赞
当然,@Bill,我们也有 Telegram,您可以在这里查看。如果您需要帮助配置场景,请联系Integromat 支持团队 
1 个赞
bartv
(Bart )
9
这是我为每周精选 Blender Artists 最佳作品合集编写的一个我最喜欢的场景,该合集会发布在我的另一个网站 BlenderNation 上。我会创建一个包含待推荐帖子链接的 Google 表格。该场景会加载每个主题,获取缩略图,将其上传到 WordPress,并生成整篇文章。我只需点击“发布”即可。以前至少需要一小时才能完成的工作,现在只需 5 分钟。(上面发布的场景是此过程中的第 2 步——它使用相同的表格,向所有人表示祝贺,并颁发徽章等。)
13 个赞
哇,@bartv,这太令人印象深刻了,感谢分享!能偶遇一位高手总是令人愉悦
。请继续保持出色的工作,感谢与我们一起实现自动化 
3 个赞
oshyan
(Oshyan Greene)
11
我已为支持 Discourse 标签提交了一个功能请求:
https://www.integromat.com/en/requests/requests-to-update-existing-apps/p/discourse-add-tag-support
我在 Integromat 的可用字段中找不到任何与标签相关的内容。我认为提供此功能将非常有帮助。
就我的具体情况而言,我希望能够在 Discourse 的主题上设置标签,并将其作为 Integromat 中的触发器,进而将该主题的内容传输到 ClickUp。更具体地说,我将使用此功能标记特定的论坛主题,以便在 ClickUp 中进行开发跟踪(例如新功能、错误等)。
并非所有论坛主题都需要进入 ClickUp,我们希望能够使用分类来区分错误、新功能或其他内容。目前的一个变通方法是将主题移至一个特殊的“ClickUp”分类,并利用 Integromat 现有的数据支持来处理这种情况,但使用标签会更加高效且干扰更少。
感谢 Integromat 出色的支持!
嗨,@oshyan,希望你一切顺利,感谢你与我们一起进行自动化!
遗憾的是,目前还没有一种优雅的方法来实现你想要的功能。这主要是由于 Discourse API 的限制。主要问题在于,很难监控最近的标签分配情况。
虽然有一个解决方案,但正如之前提到的,它并不够优雅。
- 通过“发起 API 调用”模块获取所有标签的列表(了解如何使用 Integromat 进行 API 调用的教程,请点击此处)。
- 获取每个标签的详细信息 = 通过“发起 API 调用”模块获取已分配主题的列表。
- 将当前状态保存到数据库中(可以是 Integromat 内的数据存储)。
- 将当前状态与之前的状态进行比较。
- 找出哪些主题新增了标签。
- 在 ClickUp 中执行所需的操作。
不幸的是,该场景会消耗大量的操作次数。我们明白这不太方便,但 Integromat 只能根据特定 API 允许的功能来工作。
希望这能澄清当前的情况 
如果你有任何问题,欢迎随时提问,我们会确保提供更多背景信息。
祝你度过愉快的一天!
1 个赞
oshyan
(Oshyan Greene)
14
哇,太感谢了,这真是非常有帮助且信息丰富!听起来我需要向 Discourse 团队申请一些 API 更新了。
假设 API 更新后允许查询主题的新标签,我猜那时将标签支持添加到 Integromat 应该不会太难吧?
这难道不能通过主题 Webhook 来实现吗?例如,每当 Discourse 中的某个主题被更新且带有标签时,确保将其添加到 ClickUp 中。
1 个赞
oshyan
(Oshyan Greene)
16
有意思。我不太确定具体是如何运作的,也不清楚如何设置。只要它能在为已创建的帖子添加新标签时进行匹配,并且仅在使用特定标签(或多个标签)时执行“添加到 ClickUp”的操作,那至少就能满足我的需求。
不过,我仍然认为该 API 需要更好的标签支持。
bartv
(Bart )
17
我也需要类似的功能:想要一个按标记日期排序的、包含特定标签的主题动态。最终我通过在数据浏览器中设置查询,然后从外部脚本调用该报告来绕过这个问题。如果这能帮到你,我很乐意分享更多细节。
3 个赞
oshyan
(Oshyan Greene)
18
谢谢!我想这为我指明了一个方向,万一基于 Integromat 的方案行不通的话。如果这些细节有帮助,我会告诉您。再次感谢。
1 个赞
@oshyan @bartv @JonathanShaw
大家好!
经过进一步调查,我们确认通过通用 Webhook 模块提供解决方案是一个可行的选项。
如果您能够在 Discourse 账户中设置 Webhook,并使用通用的 Integromat Webhook URL 作为监听器,那么您就可以监听包含标签信息的“主题(topic)”事件。
一个初步的场景示例可能如下所示:
如您所知,一个主题可以拥有多个标签,因此在执行任何操作之前,您应该遍历这些标签。我们的示例场景以“迭代器(Iterator)”结束,但您需要添加更多模块来执行您期望的操作(例如在上述提到的 ClickUp 应用中)。
您还可以在以下截图中查看场景中更重要的部分:
我们也在与开发团队一起调查是否可以在现有的 Discourse 应用中添加原生 Webhook 支持。但由于 Discourse 自 2016 年起就已支持 Webhook,可能存在某些技术障碍阻碍我们实现这一功能。
希望这些信息对您有帮助!
如果需要更多协助,请随时告诉我们 
1 个赞
oshyan
(Oshyan Greene)
20
哇,这支持太棒了!再次感谢。那么,这是否意味着无需使用数据存储和比较流程了?
很高兴能帮到你,@oshyan 
回答你的问题——
是的,在这个特定情况下,你不需要担心数据存储(我有 90% 的把握),原因如下:
- 我们假设一旦标签被分配给某个主题,它很少会被移除。只会不断添加新的标签。
- 每次主题变更都会生成一个新的 ping,其中包含当前分配给该主题的所有标签——因此,一旦你“监控”的标签被分配给某个主题,你的生成 ClickUp 操作的场景会立即被触发。
不过,如果你希望场景更加稳健(老实说,这会让场景变得相当复杂),可能仍有理由使用数据存储:
- 例如,一个主题获得了一个标签,随后该标签被移除,之后又在稍后重新添加同一个标签 => 这会再次触发你的场景执行之前已经处理过的操作。在这种情况下,你可能希望存储有关哪些内容已推送到 ClickUp、哪些尚未推送的信息,如果项目已推送到 ClickUp,则不再继续处理……另一方面,你也可以在推送到 ClickUp 之前先“列出所有任务”,仅当任务尚未存在于 ClickUp 中时才进行推送,而无需使用数据存储。这完全取决于你的业务逻辑。
- 数据存储可能仅仅是一个很好的已处理项目日志,方便你日后查看某年某月某日发生了什么。另一方面,你也可以直接将日志保存到 Google Sheets……同样,这也取决于你的业务逻辑。
如果你需要更多澄清,请随时告诉我们。
1 个赞