识别我的应用程序在 Slack 中发布的消息
Identifying messages posted by my app in Slack
我正在开发一个 Slack 应用程序,可以将警报应用程序发布到频道。我希望此应用程序检查频道的历史记录以查找它之前发布的消息,以便它可以做出相应的响应。例如,如果有尚未“清除”的警报,它将更新所述警报而不是发布新消息。
我遇到的挑战是我不清楚如何识别我的应用程序发布的消息。我发现我可以使用 conversations.history 搜索频道,这会给我消息事件。看起来有些消息有 user
属性。还有 bot_message
个具有 bot_id
属性 的子类型消息。但是,我没有找到任何方法来识别我的 app ID。
每个应用程序都应该有一个关联的 bot_id
吗? user
身份证?如果是这样,我从哪里获得这些 ID 以便过滤对话历史记录?
更新
我尝试在没有机器人 ID 参数的情况下调用 bots.info
方法,希望它能给我 my 机器人 ID,但除了“OK”之外没有返回任何数据状态。
也许是因为 Slack 在不同 API 方面有着悠久的历史,我被误导了。显然,我有可能找到我的机器人以前发布的消息,但不是我的想法。这是我的误解以及我在使用 Slack API 测试仪时发现的。
使用 conversations.history
, you can get a list of messages posted in a channel. The docs say that the history returns an array of message events
, and that these have a subtype field. One of the subtypes is 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>"
}
}
因此,尽管针对未记录的格式进行编码存在风险(或者我可能只是找不到合适的文档?),但我可以通过查看是否有 bot_profile.app_id
与我的相匹配来过滤这些消息我知道的应用程序 ID。
如果使用上下文,您可能知道您的机器人的 ID。示例:const {botUserId} = context
我正在开发一个 Slack 应用程序,可以将警报应用程序发布到频道。我希望此应用程序检查频道的历史记录以查找它之前发布的消息,以便它可以做出相应的响应。例如,如果有尚未“清除”的警报,它将更新所述警报而不是发布新消息。
我遇到的挑战是我不清楚如何识别我的应用程序发布的消息。我发现我可以使用 conversations.history 搜索频道,这会给我消息事件。看起来有些消息有 user
属性。还有 bot_message
个具有 bot_id
属性 的子类型消息。但是,我没有找到任何方法来识别我的 app ID。
每个应用程序都应该有一个关联的 bot_id
吗? user
身份证?如果是这样,我从哪里获得这些 ID 以便过滤对话历史记录?
更新
我尝试在没有机器人 ID 参数的情况下调用 bots.info
方法,希望它能给我 my 机器人 ID,但除了“OK”之外没有返回任何数据状态。
也许是因为 Slack 在不同 API 方面有着悠久的历史,我被误导了。显然,我有可能找到我的机器人以前发布的消息,但不是我的想法。这是我的误解以及我在使用 Slack API 测试仪时发现的。
使用 conversations.history
, you can get a list of messages posted in a channel. The docs say that the history returns an array of message events
, and that these have a subtype field. One of the subtypes is 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>"
}
}
因此,尽管针对未记录的格式进行编码存在风险(或者我可能只是找不到合适的文档?),但我可以通过查看是否有 bot_profile.app_id
与我的相匹配来过滤这些消息我知道的应用程序 ID。
如果使用上下文,您可能知道您的机器人的 ID。示例:const {botUserId} = context