【问题标题】:Identifying messages posted by my app in Slack识别我的应用在 Slack 中发布的消息
【发布时间】:2020-12-24 23:20:25
【问题描述】:

我正在开发一个 Slack 应用程序,可以将警报应用程序发布到频道。我希望这个应用程序检查频道的历史记录以查找它之前发布的消息,以便它可以做出相应的响应。例如,如果有一个尚未“清除”的警报,它将更新该警报而不是发布新消息。

我遇到的挑战是我不清楚如何识别我的应用发布的消息。我看到我可以使用conversations.history 搜索频道,这给了我消息事件。看起来有些消息具有user 属性。还有bot_message 子类型消息具有bot_id 属性。但是,我看不到任何方法可以识别我的应用 ID

每个应用都应该有一个关联的bot_id吗? user 身份证?如果是这样,我从哪里获得这些 ID 以便过滤对话历史记录?

更新

我尝试在没有 bot ID 参数的情况下调用 bots.info 方法,希望它会给我 my bot ID,但它除了“OK”状态之外没有返回任何数据。

【问题讨论】:

  • 在这里集思广益,创建数据库有可能吗?您可以存储和更新此信息并使用查询来确定我认为的此信息
  • 我还是没有基础;如何获取我的机器人 ID?
  • 是否有可能更新消息?我相信我看到了可以更新消息的 Slack 文档。由于防火墙问题,我目前实际上无法阅读文档。 api.slack.com/methods/chat.update
  • 是的,它们可以更新。我的问题是找到要更新的消息。要查找要更新的消息,我需要知道我的机器人发布了哪些消息。要找到这些,我需要我的机器人 ID。
  • 现在你有你的bot_id下面的讨论很抱歉继续跳线程

标签: slack-api


【解决方案1】:

也许是因为 Slack 拥有不同 API 的悠久历史,所以我被误导了。显然,我可以找到我的机器人以前发布的消息,但不是我想的那样。以下是我在使用 Slack API 测试器时发现的一些误解。

使用conversations.history,您可以获得频道中发布的消息列表。文档说历史返回一个message events 的数组,并且它们有一个子类型字段。其中一个子类型是bot_message,所以我的假设是我的机器人发布的消息会有这个子类型。 bot_message 的文档有一个 bot_id,我不知道我的应用程序和 username,我不知道它会匹配什么。

然而,当我发布一条测试消息时,发现该消息没有显示为bot_message;而是它出现在历史中没有子类型,并且具有似乎与任何文档都不匹配的属性:

{
  "bot_id": "B01HSBYRKUZ",
  "type": "message",
  "text": "Testing the Slack API; please ignore.",
  "user": "U01HDNUJ5EE",
  "ts": "1609878469.036400",
  "team": "<omitted>",
  "bot_profile": {
      "id": "B01HSBYRKUZ",
      "deleted": false,
      "name": "my-bot-name",
      "updated": 1608584973,
      "app_id": "<omitted>",
      "icons": {
          "image_36": "...",
          "image_48": "...",
          "image_72": "..."
      },
      "team_id": "<omitted>"
  }
}

因此,尽管针对未记录的格式进行编码是有风险的(或者我可能只是找不到正确的文档?),但我可以通过查看是否有与我的应用 ID 匹配的 bot_profile.app_id 来过滤这些消息,这我知道。

【讨论】:

  • 这个回复中的bot_id 不是正确的吗?
  • bot_id 很好,但是机器人 ID 没有显示在 Slack 应用程序管理页面的任何地方,所以我在发布测试消息之前没有它。我也不确定bot_id 是否会保持一致,例如,如果我需要为另一个团队安装或必须重新安装具有新权限的应用程序。
  • 如果有一个 API 调用可以让您的机器人 ID 正常工作,但正如我在问题中发布的那样,似乎没有任何实际的方式可以通过编程方式了解您的机器人 ID
【解决方案2】:

如果使用上下文,您可能知道您的机器人。示例:const {botUserId} = 上下文

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    相关资源
    最近更新 更多