pawlean
(Pauline P. Narvas)
2021 年7 月 15 日 12:19
1
大家好!我目前正在尝试将 Front App 与 Discourse 进行集成。目前,我使用 Pipedream 将两者连接起来。
我已经成功设置了两个工作流:
Discourse → Front App。当 Discourse 收到新消息时,会将该消息发布到 Front。
Front → Discourse。当我在 Front 上回复那条从 Discourse 导入的消息时,Pipedream 的一个 Webhook 会监听 Front 上的新回复,然后调用 Discourse API 将回复发布到 Discourse。这运行得很好,但是当我在 Front 上查看时,它会显示我的回复(因为它触发了工作流 1,即当 Discourse 收到新消息时),导致收件箱线程中出现两条消息:一条是我通过 Front 发送的,另一条是工作流 1 导入的相同消息。
有人知道如何“排除”那些从 Front 发出并通过第一个工作流拉取的消息吗?Discourse API 支持这种操作吗?
提前感谢!
pawlean
(Pauline P. Narvas)
2021 年7 月 15 日 16:20
3
嘿,Jordan!
谢谢你回复我。
回答你的问题:
是的,任何主题或对主题的回复都会同步到 Front。
一旦我从 Front 回复,它会通过一个由 Pipedream 生成的 URL 触发 Discourse 的 POST API,将内容发布到原始主题下(通过主题 ID 进行匹配)。
简单来说,流程是这样的:
我在 Front 中给某人发送回复消息。
然后,Discourse API(来自工作流 1)检测到论坛中出现了新消息,便将其作为新消息同步回 Front。
我不希望出现内容重复的情况。
我知道这可能会让人有些困惑,如果我没解释清楚,请随时告诉我。 任何建议都会非常有帮助!
那么,是否可以安全地认为:您只希望在 Discourse 话题初次创建时将其作为消息推送到 Front,而之后不再推送?
我的理解正确吗?
在 Discourse 上创建话题
1a) 将该话题转换为 Front 中的一条消息
用户在 Front 消息中回复
2a) 将 Front 消息作为回复推送到 Discourse,关联到已创建的话题。
此时,Discourse 用户会对 2a 进行回复吗?还是说对话到此为止?
我之所以这样问,是因为您可能会在来自 Front 的创建请求中检查帖子 ID。如果 Front 触发了 post id#345 在 Discourse 上创建:
……那么,在您用于监听并将 Discourse 帖子转换为 Front 帖子的 Pipedream 代码中,可以确保 Post Id 不等于您刚刚 创建的那个 ID。如果是,则不要将其转换为 Front 消息。
这在 Pipedream 中可行吗?我对该产品不太熟悉。
pawlean
(Pauline P. Narvas)
2021 年7 月 16 日 13:17
6
是的,Discourse 用户仍然可以回复 2a。我们已实现该功能!因此,当社区成员从 Discourse 发送新消息时,它会自动添加到 Front 的线程中。
以下截图可能有助于更清晰地说明:
如您所见,我通过 Front 回复了“这是来自 Front 的测试消息”,由于该消息发布到了 Discourse,Discourse API 检测到这是一条新消息,因此会将一条新消息发送到该线程中。
您的回复让我有所启发 或许可以创建一个函数,查找来自 Front 的 ID,然后在 Discourse 的“发送消息”API 中将其排除……我会尝试一下。感谢您的帮助!谢谢
pawlean
(Pauline P. Narvas)
2021 年7 月 16 日 14:08
7
嘿 @jordan.vidrine ,我想说声谢谢你的帮助!通过这条线程与你交流让我有了灵感,现在问题解决了。 特别是这部分:
我之所以这样问,是因为如果是从 Front 端触发创建帖子,你可能需要在创建时检查帖子 ID。如果 Front 触发了在 Discourse 上创建帖子 ID #345
祝好!