39
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

slackのカスタムレスポンスでメンションつけようとしたらハマったこと

Posted at

TL;DR

  • カスタムレスポンスでメンションをつけるときにはユーザー名を使う
  • Slackには表示名、氏名のほかにユーザー名が存在する。

ユーザー名の確認の仕方

  1. 左のチャンネル一覧の上、ワークスペース名を押してプルダウンメニューを出す
  2. プルダウンメニューから「slack を カスタマイズ」を開く
  3. 左のメニュー欄の「アカウントとプロフィール」を開く
  4. 設定タブの下に「ユーザー名」の行があるので右の「開く」ボタンを押す

何がしたかったのか

Slackのちょっとしたやり取りや自動で流れてくるメッセージにフックさせて、
自分に通知を飛ばしたかったのがスタートです。

WebHookを使ったSlack Botを実装すれば確実だったのですが、
手早く実装したかったのでカスタムレスポンスですぐ実装できないかと考えてしまった。
それで記事書こうかと思うくらいにはハマることになるとは知らずに……

とりあえず、サクッと書いてみようか

カスタムレスポンスですよね。
よっしゃ、設定を開いてちょちょいのちょいですよ。

カスタムレスポンスの内容
@通行人A さん\nエラーの発生を検知しました。\n対応をお願いします

個別のページでテストしてみると、
お? おかしいぞ……メンションじゃなくて文字列になってる。

自分で調査すると

やはりSlackほど有名なサービスだと情報も多いですね。
いくつかの情報を確認したところ<@user_id> を使えばいいとのこと。
早速、内容を変更して入れてみるもやっぱり送られない。

どうやらWebHookを使ったSlack Botの仕様であって、
カスタムレスポンスは仕様が違う可能性が見えてきました。

一人ではどうしようもなかったので

参加していた某エンジニアが集まるSlackチームで質問を投げてみると、
一緒に色々検証してくれる流れに。 皆さん本当にありがとうございます

そのうち一人方からカスタムレスポンスでは「@氏名」だとメンションが飛ぶとの結果が
早速試してみるが、自分ではうまくいかなかった。なぜ……

その人が書いたカスタムレスポンスの文面を見てみると、確かに氏名が指定してありました。
そしてその隣を見て気付いたのです。

「最終更新者の名前と氏名が同じだ……」

氏名? 表示名? いいえ、ユーザー名です。

自分は社内のslackで氏名と表示名とユーザー名のすべてが違う奇特な人間だったため、
常々違和感は持っていました。

そして、試しにユーザー名を指定すると……メンションが飛んだ!

カスタムレスポンスでメンションをつける際は @ユーザー名 です。
それだけの情報ですがこんなところまで読んでいただいてありがとうございます。

自分と同じように、3つの名前を使い分けている奇特な方々の助けになれていれば幸いです。

参考にしたサイト

あと私が参加しているエンジニアのコミュニティはこちらです。
(アドベントカレンダーですが、ここのTopにmohikanzの説明があります)
mohikanz Advent Calendar 2018 - Adventar

39
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?