概要
Google Apps Scriptを使い退勤時刻と打刻を促すことで打刻漏れを減らす。
実現したいこと
- 毎日決まった時間に帰れるようになりたいため、時間をトリガーにする
- 退勤時間を19:00 - 20:00に設定
- 時間主導型、日タイマー、午後7時~午後8時に設定
- 一番気づきやすいのでMention付きでSlackに通知
- 出来る限り簡単に実現する
開発環境
- Google Apps ScriptをGoogle Drive上で実行
- JavaScriptと見た感じ変わらない
- ブラウザ上で開発
- Google DriveにGoogle Apps Scriptアプリを追加
開発方法
Google Apps Scriptファイルの作成
- Google Driveの「新規作成」から「その他」-> 「Google Apps Script」を選択
コードを書く
Spreadsheets、Documentsの要領でエディタが開くのでコードを書く。ファイルの作成からコードを書いて実行するまでの流れはこちら記事がとても参考になります。
SlackのAPIを叩いてみる
Slackへの通知はSlack APIを利用します。
- https://api.slack.com/methods/chat.postMessage
Google Apps Scriptの組み込みのメソッドUrlFetchApp
を使うとHTTPリクエストが発行できます。リファレンスはこちら。token
はここらへんから入手しましょう。channel
は指定すると特定のchennel宛にメッセージを遅れます。channel名ではなくC0123456ab
のようなIDになっています。channels.listで確認するのが簡単です。
function myFunction() {
var options = {
"method" : "POST",
"payload" : {
"token": "YOUR_SLACK_TOKEN",
"channel": "CHANNEL_NAME",
"text": "@horie 退勤しましょう。\nhttps://hoge.html",
"mrkdwn": true,
'link_names': 1
}
}
var url = "https://slack.com/api/chat.postMessage"
UrlFetchApp.fetch(url, options);
}
myFunction
を選択して実行ボタンを押すとSlackに通知されるはずです。
うまくいくと↓のように通知されます。
実行時間のスケジューリング
メニューの「リソース」から「現在のプロジェクトのトリガー」を選択します。するとダイアログが表示されるのでトリガーを追加します。時間主導型、日タイマー、午後7時~午後8時を選択し保存します。これで毎日午後7時~午後8時に通知されるようになります。
まとめ
- Google DriveとGoogle Apps Scriptを利用することでサーバーレスで定期実行ができました。
- 打刻を忘れないようにしましょう!