我正在开发一个 Slack 应用程序,将警报应用程序发布到频道。我希望这个应用程序检查频道的历史记录以查找它之前发布的消息,以便它可以做出相应的响应。例如,如果有一个尚未“清除”的警报,它将更新所述警报而不是发布新消息。
我遇到的挑战是我不清楚如何识别我的应用程序发布的消息。我看到我可以用对话搜索一个频道,历史记录,这给了我消息事件。看起来有些消息有一个user属性。还有bot_message具有bot_id属性的子类型消息。但是,我看不到任何方法来识别我的应用程序 ID。
每个应用程序都应该有一个关联的bot_id吗?userID?如果是这样,我从哪里获得这些 ID 以便我可以过滤对话历史记录?
更新
我尝试在bots.info没有机器人 ID 参数的情况下调用该方法,希望它能给我我的机器人 ID,但它除了“OK”状态之外没有返回任何数据。
也许是因为 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>"
}
}
Run Code Online (Sandbox Code Playgroud)
因此,尽管针对未记录的格式进行编码是有风险的(或者我可能只是找不到合适的文档?),但我可以通过查看是否有bot_profile.app_id与我的应用程序 ID 匹配的 ID来过滤这些消息,我确实知道。
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |