こんにちは(‾◡◝)
技術本部のAIです。部署名が変わりました。
以前CSE AutomationのPlaybookでSlackと連携する記事を書いた時からずっとやってみたいことがあったのですが、上手くいかず…。
CSE Automation で Slack 連携してみた
しかしこの前ついに、ついにSlackのメッセージでメンションを使う方法が分かったのです!
できたときは嬉しくて社内で声を出して喜びました。
周囲にいた人には突然叫んですみませんでした…。本当に嬉しかったんです…。
ということでやり方をご紹介したいと思います。
参考サイト
SlackのAPIに関するサイトを見たところ、エスケープテキストという部分に書かれている、シンボルをメンションする際に使う必要がありました。
Sumo LogicのPlaybookは、Slackに対してAPIでHTML形式のデータを送っているので、特定の記号はエスケープする必要があります。
やりたいこと
- CSE Automation等でPlaybookを使い、Slackに連携
- Slackにチャンネルを作成し、ユーザをインバイト
- インバイト後、チャンネルのメンションを付けてメッセージを送信
1 と 2 はこちらですでに説明しているので、本記事では割愛します。
今回は上記記事の「追加処理2:メッセージの編集」の部分を変更していくイメージです。
メンションの書き方
今回は「@channel」をメッセージに含んでメンションしたいと思います。
まず構文を確認しましょう。
Slackの記事を確認すると、@here、@channelなどのメンションをメッセージに追加するには下記の構文を使います。
太字の部分がメンションする際の書き方になります。Hey <!here>, there's a new task in your queue.
特定のユーザに対してメンションする場合は、メンバーIDを使います。Hey <@U012AB3CD>, thanks for submitting your report.
しかし、このままPlaybookに書いてもメンションは有効にならず、エスケープされて送信されます。
ここから気づくまで試行錯誤を続けましたが、何をしていたかは省略します…。
ではメンションを有効にするために、下記をメッセージの冒頭に追記します。<!channel>
そしてSlackを確認すると…
メンションできましたー!!!👏
たまに上手く改行ができていないとメンションが有効にならず、メッセージに含まれていないように見えることがありますので、メッセージを一度すべて切り取り、メンションを追記し、改行してから切り取ったメッセージを張り付けると良いかもしれません。
上手くいくまで何回かやり直しました…。
まとめ
CSE Automationで使っているPlaybookでSlackと連携している場合、メンションを使いたい方もいらっしゃると思います。
チャンネル全体をメンションして通知したいなら、メッセージ内に下記を記載してください。<!channel>
インバイトしたユーザに対してメンションしたい場合も、<>をエスケープして、「@メンバーID」を付ければできると思います!
書き方の説明はSlackのサイトにも載っているので、ぜひ試してみてください。
ちなみにPlaybookはCSE以外でも使える場面があるので、またの機会にブログを書きたいと思います。
以上、Slackでのメンションの仕方でした!
- カテゴリ:
- Sumo Logic
- 機能説明