如何拆分来自同一用户的 Slack 消息?

How to split Slack messages from same user?

我正在使用 Slack API 到 post 具有各种状态的自动消息。为了标记状态,我使用表情符号图标。发送工作正常,并且设置了正确的图标(我在响应中看到了),但是随后的post在频道中是运行,所以即使图标不同,它确实直到有来自其他用户的消息才会显示:

[red icon]    BOT_USER   msg #1 some info - status critical
                         msg #2 some info - status ok (should have green icon!)
                         msg #3 some info - status critical
[user icon]   SOME_USER  some message
[green icon]  BOT_USER   msg #4 some info - status ok

(抱歉,没有足够的代表来 post 截图)

有没有办法拆分消息,确保始终显示图标?如果没有,有没有办法,例如更改消息的背景颜色?

我找到了使用 attachments 标记它的方法。我的脚本看起来像那样(引用让我有些头疼):

ATTACHMENTS="[{\"fallback\":\"$INPUT\",\"text\":\"$INPUT\",\"color\":\"$COLOR\"}]"
curl -sS -X POST \
    --data "token=$TOKEN&channel=$CHANNEL_ID&username=$FROM&attachments=$ATTACHMENTS" \
    https://slack.com/api/chat.postMessage

$COLOR 变量设置为 dangergood 或十六进制颜色,在消息旁边提供该颜色的垂直条,这对我有用。因此,即使消息按用户分组,条形图也可以区分。

来自同一用户的消息分组是 Slack 的标准行为,无法更改。因此,不使用用户的图标和名称作为指示符是有意义的,而是寻找其他方法。

附件中的颜色是一种替代方法。另一种是在附件中使用缩略图(而不是用户图标)。

您可以使用块而不是文本,分隔符类型的块可以在消息前后使用。

"blocks": [
    {
        "type": "divider"
    },
    {
        "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "This is unquoted text\n>This is quoted text\n>This is still quoted text\nThis is unquoted text again"
        }
    },
    {
        "type": "divider"
    }
]