如何使用 Make 将 Discourse 连接到数百个应用程序

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

什么是 Integromat@2x

Discourse 模块使您能够监控、创建、更新、检索或删除 Discourse 账户中的帖子和主题。可用的触发器可以监视 Discourse 上的帖子、主题和私信,然后将数据传输并存储到另一个应用程序中。

Make 允许您构建任何您能想象到的集成。使用可视化构建器,您可以拖放任意数量的应用程序或步骤,以模拟实际的工作流程。目前已有超过 700 个可用应用程序,以及多种通用应用程序,允许您通过 HTTP/JSON 连接到任何 API。

查看完整的 Discourse 模块列表和 预设集成模板,或点击下方的截图查看场景:

这些预定义模板使创建场景变得更加容易。Make 向导将逐步引导您完成构建过程。当然,您始终可以扩展和自定义场景以满足您的个人需求,或者创建您自己的场景。

开始之前,您需要 注册 一个 Make 账户,然后与您的 Discourse 账户建立连接。注册并登录后,请按照此 分步指南 操作。

开始创建场景(场景是 Make 术语,指集成)时,您将进入可视化场景构建器。首先选择您想要的 Discourse 操作,然后系统会提示您创建连接。要将您的 Discourse 账户连接到 Make,您需要获取 API 密钥,并将其插入 Make 的“创建连接”对话框中。

功能

  • 当创建新帖子时检索帖子详情
  • 检索跨主题的最新帖子列表
  • 检索帖子详情
  • 更新现有帖子
  • 删除现有帖子
  • 当创建新主题时检索主题详情
  • 检索主题列表
  • 检索主题详情
  • 允许您更新现有主题的标题和/或类别
  • 删除现有主题
  • 当收到新私信时检索消息详情
  • 检索您账户中的私信
  • 创建帖子、主题或私信
  • 允许您执行自定义 API 调用

:arrow_right: 安装:按照 插件安装指南 将 Discourse 连接到 Make

配置

1. 登录您的 Discourse 账户。

2. 打开右上角的菜单。

3. 导航至 管理 > API。

01

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 个赞

好棒的文章!Integromat 太棒了 :heart:

2 个赞

不是……是 Michaela Staffova 吗?Integromat 的通才解决方案专家?

5 个赞

没错 :slightly_smiling_face: 我非常高兴能为 Integromat 工作,同时也觉得它非常棒 :pray:

4 个赞

这是我喜欢的自动化平台👏 我已经用它配合 Discourse API 很长时间了——我想我现在可以迁移一些模块了🙂

8 个赞

感谢 @bartv 持续给予的积极反馈!我们也看到了您最近发布的关于我们的帖子 :slightly_smiling_face:

3 个赞

与 Zapier 相比,这里的定价非常实惠,免费套餐也更优。我打算试用一下,以测试其与我社区可能的功能集成。我希望将 Discourse 与 Telegram 群组的通讯进行链接。

2 个赞

当然,@Bill,我们也有 Telegram,您可以在这里查看。如果您需要帮助配置场景,请联系Integromat 支持团队 :slight_smile:

1 个赞

这是我为每周精选 Blender Artists 最佳作品合集编写的一个我最喜欢的场景,该合集会发布在我的另一个网站 BlenderNation 上。我会创建一个包含待推荐帖子链接的 Google 表格。该场景会加载每个主题,获取缩略图,将其上传到 WordPress,并生成整篇文章。我只需点击“发布”即可。以前至少需要一小时才能完成的工作,现在只需 5 分钟。(上面发布的场景是此过程中的第 2 步——它使用相同的表格,向所有人表示祝贺,并颁发徽章等。)

13 个赞

哇,@bartv,这太令人印象深刻了,感谢分享!能偶遇一位高手总是令人愉悦 :slightly_smiling_face:。请继续保持出色的工作,感谢与我们一起实现自动化 :pray:

3 个赞

我已为支持 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 的限制。主要问题在于,很难监控最近的标签分配情况。

虽然有一个解决方案,但正如之前提到的,它并不够优雅。

  1. 通过“发起 API 调用”模块获取所有标签的列表(了解如何使用 Integromat 进行 API 调用的教程,请点击此处)。
  2. 获取每个标签的详细信息 = 通过“发起 API 调用”模块获取已分配主题的列表。
  3. 将当前状态保存到数据库中(可以是 Integromat 内的数据存储)。
  4. 将当前状态与之前的状态进行比较。
  5. 找出哪些主题新增了标签。
  6. 在 ClickUp 中执行所需的操作。

不幸的是,该场景会消耗大量的操作次数。我们明白这不太方便,但 Integromat 只能根据特定 API 允许的功能来工作。

希望这能澄清当前的情况 :slightly_smiling_face:

如果你有任何问题,欢迎随时提问,我们会确保提供更多背景信息。

祝你度过愉快的一天!

1 个赞

哇,太感谢了,这真是非常有帮助且信息丰富!听起来我需要向 Discourse 团队申请一些 API 更新了。

假设 API 更新后允许查询主题的新标签,我猜那时将标签支持添加到 Integromat 应该不会太难吧?

这难道不能通过主题 Webhook 来实现吗?例如,每当 Discourse 中的某个主题被更新且带有标签时,确保将其添加到 ClickUp 中。

1 个赞

有意思。我不太确定具体是如何运作的,也不清楚如何设置。只要它能在为已创建的帖子添加新标签时进行匹配,并且仅在使用特定标签(或多个标签)时执行“添加到 ClickUp”的操作,那至少就能满足我的需求。

不过,我仍然认为该 API 需要更好的标签支持。

我也需要类似的功能:想要一个按标记日期排序的、包含特定标签的主题动态。最终我通过在数据浏览器中设置查询,然后从外部脚本调用该报告来绕过这个问题。如果这能帮到你,我很乐意分享更多细节。

3 个赞

谢谢!我想这为我指明了一个方向,万一基于 Integromat 的方案行不通的话。如果这些细节有帮助,我会告诉您。再次感谢。:slight_smile:

1 个赞

@oshyan @bartv @JonathanShaw

:raised_hand_with_fingers_splayed: 大家好!

经过进一步调查,我们确认通过通用 Webhook 模块提供解决方案是一个可行的选项。

如果您能够在 Discourse 账户中设置 Webhook,并使用通用的 Integromat Webhook URL 作为监听器,那么您就可以监听包含标签信息的“主题(topic)”事件。

一个初步的场景示例可能如下所示:

如您所知,一个主题可以拥有多个标签,因此在执行任何操作之前,您应该遍历这些标签。我们的示例场景以“迭代器(Iterator)”结束,但您需要添加更多模块来执行您期望的操作(例如在上述提到的 ClickUp 应用中)。

您还可以在以下截图中查看场景中更重要的部分:



我们也在与开发团队一起调查是否可以在现有的 Discourse 应用中添加原生 Webhook 支持。但由于 Discourse 自 2016 年起就已支持 Webhook,可能存在某些技术障碍阻碍我们实现这一功能。

希望这些信息对您有帮助!
如果需要更多协助,请随时告诉我们 :robot:

1 个赞

哇,这支持太棒了!再次感谢。那么,这是否意味着无需使用数据存储和比较流程了?

很高兴能帮到你,@oshyan :slightly_smiling_face:

回答你的问题——

是的,在这个特定情况下,你不需要担心数据存储(我有 90% 的把握),原因如下:

  1. 我们假设一旦标签被分配给某个主题,它很少会被移除。只会不断添加新的标签。
  2. 每次主题变更都会生成一个新的 ping,其中包含当前分配给该主题的所有标签——因此,一旦你“监控”的标签被分配给某个主题,你的生成 ClickUp 操作的场景会立即被触发。

不过,如果你希望场景更加稳健(老实说,这会让场景变得相当复杂),可能仍有理由使用数据存储:

  1. 例如,一个主题获得了一个标签,随后该标签被移除,之后又在稍后重新添加同一个标签 => 这会再次触发你的场景执行之前已经处理过的操作。在这种情况下,你可能希望存储有关哪些内容已推送到 ClickUp、哪些尚未推送的信息,如果项目已推送到 ClickUp,则不再继续处理……另一方面,你也可以在推送到 ClickUp 之前先“列出所有任务”,仅当任务尚未存在于 ClickUp 中时才进行推送,而无需使用数据存储。这完全取决于你的业务逻辑。
  2. 数据存储可能仅仅是一个很好的已处理项目日志,方便你日后查看某年某月某日发生了什么。另一方面,你也可以直接将日志保存到 Google Sheets……同样,这也取决于你的业务逻辑。

如果你需要更多澄清,请随时告诉我们。

1 个赞