如何为Slack incoming-webhook消息添加部分颜色?

gul*_*dam 8 python slack-api slack

我想编写一个python脚本,它将颜色格式的消息发送到配置的松弛通道.我设法将普通文本的句子发送到松散的通道,但我无法弄清楚如何赋予我想要的部分句子颜色.

我在python中使用了slackweb库,如下所示

import slackweb
slack = slackweb.Slack(url = url_of_the_configured_channel)
string_to_send = "test TEST"
payload = {'text' : string_to_send}
slack.notify(text=string_to_send)
Run Code Online (Sandbox Code Playgroud)

我怎么能说,格式化string_to_send有效载荷,以便"测试"一词显示为蓝色,而"TEST"在松弛通道中显示为红色?

提前致谢.

Eri*_*ken 12

不幸的是,目前无法使用API​​为Slack消息的文本着色.您可以使用不同的样式,例如粗体和斜体,但不能使用颜色.(请参阅Slack文档中有关如何使用样式的消息格式.)

您可以为附件使用颜色.然而,这将导致整个附件的垂直彩条标记,但不会产生彩色文本.(请参阅Slack文档中的附件参数,了解如何为附件着色.)

这是一个关于如何使用Slack附件颜色的示例(取自Slack文档):

{
    "attachments": [
        {
            "fallback": "New ticket from Andrea Lee - Ticket #1943: Can't rest my password - https://groove.hq/path/to/ticket/1943",
            "pretext": "New ticket from Andrea Lee",
            "title": "Ticket #1943: Can't reset my password",
            "title_link": "https://groove.hq/path/to/ticket/1943",
            "text": "Help! I tried to reset my password but nothing happened!",
            "color": "#7CD197"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)


fyn*_*yrz 7

您可以做的(作为一个公认的笨拙的解决方法,直到/除非 Slack 支持的不仅仅是原始格式)是:

  • 在服务器上将消息创建为小图形图像
  • 使用 webhook 将图像的网址上传到 slack 通道
  • 该消息现在显示在频道中

您可以使用ImageMagick来实现此目的。

.png图像允许透明度,因此您不必太担心背景匹配。

当然,这是一种效率极低的方法,但它具有随心所欲的特点。