web-dev-qa-db-ja.com

Slackの着信Webhookメッセージの一部に色を付けるにはどうすればよいですか?

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)

スラックチャネルでWordの「test」が青く表示され、「TEST」が赤く表示されるように、フォーマットstring_to_sendまたはpayloadとするにはどうすればよいですか?

前もって感謝します。

13
guldam

残念ながら、現時点では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"
        }
    ]
}
12
Erik Kalkoken

あなたができること(Slackがプリミティブフォーマット以上のものをサポートするまで/でない限り、確かに不器用な回避策として)は次のとおりです:

  • サーバー上で小さなグラフィック画像としてメッセージを作成します
  • webhookを使用して画像のWebアドレスをSlackチャネルにアップロードします
  • メッセージがチャネルに表示されます

これには ImageMagick を使用できます。

.png画像は透明性を考慮しているため、背景のマッチングについてあまり気にする必要はありません。

これはもちろん、それを実行するためのひどく非効率的な方法ですが、それはあなたが望むことをするという心地よい特徴を持っています。

2
fyngyrz