【概要】
Slack連携をしている勤怠管理システムにスクリプトから打刻したいと思い、Slackにスラッシュコマンドを送信する方法を調べた。
SlackにスラッシュコマンドをAPIから送信する場合、chat.postMessage
などを使用するとスラッシュコマンドではなく単純なテキストとして認識されてしまう為、chat.command
というAPIを使用する必要がある。
しかし、chat.command
を使用する為にはPOSTのスコープが必要で、その為に必要なLegacyTokenが2020年5月5日をもって発行出来なくなってしまったので、今までのようにchat.command
を使用することは出来なくなってしまった。
https://api.slack.com/changelog/2020-02-legacy-test-token-creation-to-retire
そこで今回は、chat.command
を使用する裏技について解説する。
【手順】
1.GoogleChromeなどから、Slackにアクセスし、スラッシュコマンドを送りたいチャンネルを開く
2.F12を押して通信の内容を表示し、送信したいスラッシュコマンドを一度手動で送信する
3.通信の一覧にchat.command
が表示されるので、右クリックする
4.Copyから、様々な言語向けにHttpリクエストをコピー出来るので、使いたい言語でコピーする
5.コピーした内容をスクリプト化し実行すると、スラッシュコマンドが送信され
る
【おまけ】
今回自分はcURL(cmd)でコピーし、batファイルとして作成したが、書式の問題でそのままでは動かなかったので、動くようにする方法を記述しておく。
1.sec-ch-ua:という行があれば削除する
2.一番最後にある--compressedを削除する
3.compressedがあった手前の行の最後にある^を削除する
4.^%^を、全て%%に置き換える
これでbatからスラッシュコマンドを送ることが出来る。