RaycastとScript Commandを用いてSlackでのジョブカン勤怠打刻を自動化する

こんにちは。エキサイト株式会社でアプリエンジニアをしている岡島です。エキサイトホールディングス Advent Calendar 2024の6日目を担当させていただきます。 今回は、RaycastとScript Commandを用いて、Slackでのジョブカン勤怠打刻を自動化する方法をご紹介します。

なお、使用PCはMacOS、ブラウザはArcを用いています。MacOSでのGUIの操作が比較的簡単なAppleScriptを用いた方法となりますのでご注意ください。

↓例 Slackを開き、メッセージ送信まで自動化

Raycastとは

Raycastとは、アプリケーションの起動、ファイル検索、スクリプトの実行など、さまざまな操作ができるランチャーアプリです。ウィンドウマネジメントやクリップボードの機能もあり、便利です。

↓インストールはこちらから

https://www.raycast.com/

出退勤時のジョブカンSlack打刻を自動化する

エキサイトでは、リモートワーク時の出退勤打刻をSlackのコマンドを用いて行います。勤怠管理はジョブカンを用いているので/jobcan_touchというコマンドを入力し、打刻します。

出退勤時の流れ

  1. Slackを起動する
  2. コマンドを打つチャンネルを開く
  3. /jobcan_touchというコマンドを入力、送信

この一連の流れを、Raycastでコマンド1つ叩けば完了するようにScript Commandを用いて実装します。

どの画面からでもどのアプリを開いていても、 Raycastからコマンドを入力すれば Slackが自動で起動し、自動で/jobcan_touchのコマンドが送信されるようになります。

Script Commandを用いて自動化する

  1. Raycastを開きcreate script commandと入力し、作成画面を開く
  2. Template, Modeなどそれぞれ入力し、作成
    • Template: 今回はApple Scriptで実装します。
    • Mode: Silent(Raycastを開くことなく、スクリプトだけ実行されるようになります。)
    • Title: ファイル名
    • Description: 説明
  3. ファイルの保存先を指定して、保存
  4. 作成したファイルを編集

↓サンプル

#!/usr/bin/osascript

# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title jobcan
# @raycast.mode silent

# Optional parameters:
# @raycast.icon 🤖

tell application "Slack" 
    activate
    delay 0.5
    open location "slack://channel?team=<ワークスペースのID>&id=<チャンネルID>"
    delay 0.5
    tell application "System Events"
        set the clipboard to "/jobcan_touch"
        keystroke "v" using {command down}
        delay 0.5
        key code 36
        key code 36 using {command down}
    end tell
end tell

Script Commandの流れ

  1. Slackの起動
  2. Slackのチャンネルを開く
  3. クリップボード/jobcan_touchをセット
    • 入力モードの影響を受けずに、/jobcan_touchのコマンドを打ちたいのでクリップボードを使用します
  4. エンター→送信
Slackのチャンネルを開く

コマンドで開く場合はopen "slack://channel?team=<ワークスペースのID>&id=<チャンネルID>”

delay 0.5は起動時間や処理時間などを確保するため待機しています。 Scriptが完成したらRaycastを開き、コマンドを打てば自動的にコマンドが送信されます。

AppScript実行の許可

セキュリティとプライバシーの設定をしていないと実行時に下記エラーが表示されます。

System Eventsでエラーが起きました: スクリプトエディタにはキー操作の送信は許可されません。

この場合は、システム環境設定 >セキュリティとプライバシー > プライバシー > アクセビリティ > AppleScript エディタ.app の設定をONにする必要があります。

最後に

今回はScript Commandを用いて、ルーティンになっているSlackでのコマンド送信を自動化しました。 RaycastはQuicklinksという機能もあり、よく使うSlackのURLを登録しておけば、コマンド入力やショートカットキーを押すだけですぐにチャンネルが開けるようになります。 他にも日報の作成や勤怠報告なども自動化できそうです。

この記事が誰かのお役に立てれば幸いです。

最後まで読んでいただきありがとうございました。