Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Slack で打刻忘れを防ぐには ~前編~

はじめに

リモートワークの皆さん、ちゃんと打刻できてますか?

出社時はケータイのアラームで対応できるものの、退社時はどうしても忘れてしまいがち。OS(Linux)のシャットダウン時に Slack に通知するようにしてみたので、備忘のために、手順をここに記します。

前提:

  • Slack の通知を使います
    • Slack を利用していて、かつ、アプリを作る権限があること
  • シャットダウン対象の OS は Linux です
    • systemd が動作している Lunux であること

ざっくり手順:

  1. Slack で、自分宛てに POST する機能(アプリ)を作る
    • 機能(アプリ)を作成&登録
    • Incomming WebHook の設定
    • Webhook URL の払い出し
  2. シャットダウン時に、1. の機能を動作させる
    • Webhook URL への POST
    • systemd の設定

Slack の準備

まずは通知を受ける側(Slack 側)の準備です。Slack の「Incomming Webhooks」という機能を使います。これは、外部から Slack にメッセージを投稿するための機能です。

参考: Sending messages using incoming webhooks | Slack

上記サイトの手順どおりに進めば良いです。以下、実際の画面にそって説明します。

「Create your Slack app」ボタンを押します。


「From scratch」を選択します。


アプリに命名し、所属するワークスペースを選択して、「Create App」ボタンを押下します。希望するワークスペースがリストされない場合、サインインしていない可能性があるので「Sign into a different workspace」からサインインを済ませます。

※ここではアプリの名称を "clock-out" としています


アプリが出来上がると上記のようなアプリの設定画面になるので、

  1. 左のメニューから「Incomming Webhooks」を選択し、
  2. トグルスイッチを「On」にして、
  3. 「Add New Webhook to Workspace」ボタンを押下

します。


POST 先のチャンネルを聞かれるのでリストから選択します。DM 選択できるので自分を選択し「Allow」ボタンを押下します。

※シャットダウンを周知したければ DM じゃなくても良いです


Webhook URL が出来上がりました。「Copy」ボタンを押下するとクリップボードに URL がセットされます。さっそく、curl で叩いてみましょう。

curl -X POST \
  -H 'Content-type: application/json' \
  --data '{"text":"Hello, World!"}' <生成された Webhook URL>

とりあえず Sample どおり "Hello, World!" を POST すると、

手元の iPhone に通知されました!

端末に Slack アプリをインストールしている場合などは、端末が拾って iPhone 等のデバイスに通知されないことがあるので、Slack の設定で「immediately, even if I'm active」にしておくとよさげです。

つづく

キャプチャ多くて記事が縦長になってしまったのでいったんここまで。次回は OS 側の設定です。