【问题标题】:Is there a way to link User Messages with the Custom Bot Responses in slack without threading the messages?有没有办法将用户消息与 slack 中的自定义 Bot 响应链接起来而无需线程化消息?
【发布时间】:2018-12-08 17:07:26
【问题描述】:

我正在尝试使用自定义机器人应用程序在 slack 中实现编辑消息功能。如果用户编辑消息,自定义机器人也会编辑其响应。我能够检测到用户的消息更改事件以及用户消息的 ts,但无法获取必须编辑的机器人消息的 ts。

【问题讨论】:

  • 能否请您编辑您的问题并添加一些您迄今为止尝试过的代码?
  • 我暂时没有实现任何代码。我所拥有的是用户消息的 JSON,我可以从中获取用户的 ts,并且当消息更改事件发生时,此 ts 可作为先前消息 JSON 的一部分使用,但没有可用的信息来回复此消息。是否需要在我们这边完成,就像用户 ts 和 bot ts 存储在 db 中然后相应地获取,还是有其他方法可以做到这一点?

标签: timestamp bots edit slack


【解决方案1】:

您可以尝试使用channels.historyconversations.history API 方法按时间戳和用户过滤消息,从而找到您的机器人用户对已编辑消息的回复。

oldest API 参数设置为等于已编辑用户消息的ts,并设置latest 参数以捕获机器人回复非线程消息的时间窗口。当您从此 API 调用返回结果时,通过查看结果中的 user 字段来搜索最接近您的机器人的 ts 消息。

在您尝试过 API 调用的时间窗口后,此方法应该可以工作。但是,为了 100% 的准确率,您肯定希望将用户的 ts 和您的机器人的回复 ts 存储在数据库中。

【讨论】:

  • 感谢 Adil 的回复,在我们的例子中,我们将有一个消息队列,它将向 Bot 提供消息,而 Bot 将响应多个用户发送的消息。因此,从 db 存储和检索数据以及进行 api 调用以获取数据将增加 Bot 的响应时间。这是唯一可用的选项吗?
  • 由于用户在发送消息后只能在 30 分钟内编辑他们的消息,因此您至少有一个很好的时间来进行潜在的消息编辑,并且应该能够定期删除早于30分钟,对吗?用户多久会编辑一次机器人回复的自己的消息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多