无法获取 Slack App 发布的消息的时间戳

Unable to get timestamp of the message posted by Slack App

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

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

谢谢。

您的方法行不通,因为 Slack 处理临时消息的方式不同于 "normal" 消息。它们仅对一个用户可见,并且不能通过 API 方法(例如删除)进行修改。

但当然可以替换临时消息。方法如下:

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

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

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

有关如何响应交互式消息的官方文档,请参阅 here

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

另请参阅 了解类似情况。