Posted at

Slack API でユーザ・チャンネルの名前がリンクされないときの対処法 (あるいは takosan を試した件)

More than 3 years have passed since last update.


ikachan for Slack こと takosan を試した

Slack API を通じて簡単に Slack にメッセージを送信できる takosan が便利そうだったので試してみました。

用途としては、例えば実行に時間のかかるコマンドを実行して、終わったら自分宛てに mention を飛ばさせる、みたいな感じです。

takosan は Heroku ボタンに対応しているので、サクッと Heroku にアップして試してみたところ以下のようになりました。

brfore.png

ユーザ名やチャンネル名がリンクになっていません。

また、Recent Mentions にも表示されず、通知も行われませんでした。

これでは当初想定した使い方ができない、と思ってなんとかできないか調べてみました。


対処法: link_names=1 を指定する

調べたところ、takosan の内部では Slack Web API の chat.postMessage というメソッドが使われていることがわかりました。

そして Arguments として link_names=1 を指定することで解決できそうだったので、早速 takosan にパッチをあてて試してみました。

link_names はドキュメント上以下のようになっています。


Find and link channel names and usernames.


after.png

うまくリンクされるようになりました!

また、Recent Mentions への表示や、通知も意図した通りに行われるようになりました。


おまけ: 通知の設定を見直そう

今回のような用途で takosan (またはその他の bot) を使う場合、通知の設定を以下のようにしておくことをお勧めします。

setting.png

詳しくは以前に私が書いた以下の記事にて。