【问题标题】:How can I color part of Slack incoming-webhook messages?如何为 Slack 传入 Webhook 消息的部分着色?
【发布时间】:2017-02-15 07:29:03
【问题描述】:

我想编写一个 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)

我怎样才能格式化 string_to_sendpayload 以使 'test' 字样在松弛通道中显示为蓝色而 'TEST' 显示为红色?

提前致谢。

【问题讨论】:

  • 你确定你能做到吗?
  • 嗯...我听说有可能,但我不确定
  • 好吧。我在 slack web 或桌面客户端上找不到这个选项。在机器人 API 中
  • 您可以滥用反引号“代码”引号(“`”)使文本变为红色。

标签: python slack-api slack


【解决方案1】:

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

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

这是一个关于如何为 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"
        }
    ]
}

【讨论】:

  • 有什么解释吗?这似乎是一件很简单的事情
  • 有内置的“创建文本 sn-p”应用程序将语法突出显示的代码发布为可选文本,因此应该可以以某种方式实现。
【解决方案2】:

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

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

您可以为此使用ImageMagick

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

当然,这是一种非常低效的方法,但它具有做你想做的令人愉快的特征。

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2022-08-18
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多