動機
人は、ルーチンワークを意識すると言うのが、苦手な生き物である!!(主語でかい)
みなさん、よく月末に勤怠を入力してくださいって、言われません?
言われない?自動化してる?
僕は割と言われます
毎回、「すみません(汗」と、言って勤怠を入れるのである。
もう、3回言われたら、自動化して対策するのが、エンジニアってものですよ。
(財布も月3回、家に忘れたから、忘れるものと割り切って対策組んだし)
ちょうど、人事労務freeeにはAPIが公開されているので、こいつで勤怠打刻を自動化しましょう!
出勤と退勤の定義
自動化するに当たって、どのような動作を出勤・退勤として、処理させるか。
会社のWi-Fiがスマートフォンが掴んだら?
私用のスマートフォンでの接続は許可されていない。
そして、僕は業務用ケータイは持ってない。(そもそも、客先常駐なので、ここでいう会社のWi-Fiは客先のWi-Fiになるわけで)
GPSは、使うときだけONにしてるから、うっかり物の僕は絶対入れ忘れる。
さて、どうするか。
答えはシンプル。
業務マシンのログインを出勤・ログアウトを退勤と定義する。
電源のオンオフだと、リモートワークの時ですね・・・オフィスのマシンが使えなくなるんです。
なので、ログイン・ログオフです。
ちなみに、想定環境は Windows です。
ログイン時にbatファイル経由でPythonスクリプトを起動して、freeeに打刻するという仕組みです。
REM record.bat
python worktimerecorder.py [batファイルの起動時間] [出勤 or 退勤]
pythonを直接叩いても良さそう
freee APIを叩く準備
freeeのチュートリアルを勧めて、APIを叩ける状態にする。
アプリの作成からClient ID/Client Secretの生成・作成したClient IDを使って認可トークンの生成・認可トークンを使用してアクセストークンとリフレッシュトークンの生成を行います。
いろいろ試したいなら、テスト事業所とテストアカウント作ったほうがいいです。
僕はそれがボトルネックになっていたので自分のアカウントでやりましたが、実際の勤怠をいじるのでお勧めしない
補足として、アプリの権限設定は、[人事労務] 打刻 と[人事労務] 勤怠 を選びました。
freee APIを叩く
叩く準備が整ったので、実際に叩いてみます。
freeeの以下のチュートリアルを参考にしていきます。
最初のGET/POSTリクエストを行う
freeeのAPIリファレンスはSwaggerで作られているので、このページからAPIを叩くことが可能です。
APIのリファレンスページのAuthorizeのボタンをクリックして、AccessTokenを入力するとログイン状態になり、勤怠やタイムレコーダーAPIが使えるようになります。\プログライズ!ライジングホッパー!!/
次にログインユーザー情報を取得して、company_idとemployee_idを控えておきます(他のAPIでよく求められるので)
控えたIDで、打刻情報の一覧を取得してみます。
Parametersの横のTry itからパラメータを入力して、Executeで実行します。
これを元に、Pythonで勤怠打刻スクリプトを作っていきます。
・・・が、今回はここまでです。(というかここまでしかやってない)
つづく(・ω⊂)<任務完了...