1

每当我的应用程序向 Slack 频道发布临时消息(以响应用户的查询)时,我都无法获得我的 Slack 应用程序响应的时间戳。因为我想在用户使用其中一个按钮进行选择后删除它。虽然我订阅了“message.channels”事件,但每当我的应用在频道中发布(响应用户输入)时,我都不会收到通知,因此,我无法获取消息的时间戳我将用它来删除它。我想要的只是我的应用程序发布的消息的时间戳,以便我可以删除它,但我无法接收时间戳。请帮忙!

例如,在 Slack 的 Giphy 应用程序中。假设用户通过调用“/giphy [dog]”来调用应用程序,其中“dog”只是搜索词的一个示例。该应用程序通过发送一个 gif 来响应,用户可以发送它、随机播放到下一个或取消它。我想要取消应用程序响应的类似功能,但我需要消息的时间戳才能这样做,因此我正在寻求帮助。

谢谢。

4

1 回答 1

1

您的方法行不通,因为 Slack 处理临时消息的方式与“正常”消息不同。它们只对一个用户可见,并且不能通过 API 方法修改(例如删除)。

但当然它可以替换短暂的消息。方法如下:

您的应用程序可以只用一条新消息回复来自 Slack 的交互式消息请求。默认情况下,该新消息将覆盖包括临时消息在内的原始消息。

您可以通过两种方式回复:

  • 3秒内直接回复Slack的请求
  • 在 30 分钟内向 Slack 请求发送消息response_url

有关如何响应交互式消息的官方文档,请参见此处。

这种方法适用于交互式消息和斜杠命令。

另请参阅此答案以了解类似情况。

于 2019-02-26T15:49:02.587 回答