2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

freeeAPIで勤怠打刻を自動化したい! その1

Posted at

動機

人は、ルーチンワークを意識すると言うのが、苦手な生き物である!!(主語でかい)
みなさん、よく月末に勤怠を入力してくださいって、言われません?
言われない?自動化してる?

僕は割と言われます
毎回、「すみません(汗」と、言って勤怠を入れるのである。
もう、3回言われたら、自動化して対策するのが、エンジニアってものですよ。
(財布も月3回、家に忘れたから、忘れるものと割り切って対策組んだし)
ちょうど、人事労務freeeにはAPIが公開されているので、こいつで勤怠打刻を自動化しましょう!

出勤と退勤の定義

自動化するに当たって、どのような動作を出勤・退勤として、処理させるか。
会社のWi-Fiがスマートフォンが掴んだら?
私用のスマートフォンでの接続は許可されていない。
そして、僕は業務用ケータイは持ってない。(そもそも、客先常駐なので、ここでいう会社のWi-Fiは客先のWi-Fiになるわけで)

GPSは、使うときだけONにしてるから、うっかり物の僕は絶対入れ忘れる。

さて、どうするか。
答えはシンプル。
業務マシンのログインを出勤・ログアウトを退勤と定義する。
電源のオンオフだと、リモートワークの時ですね・・・オフィスのマシンが使えなくなるんです。
なので、ログイン・ログオフです。

ちなみに、想定環境は Windows です。
ログイン時にbatファイル経由でPythonスクリプトを起動して、freeeに打刻するという仕組みです。

batファイルのイメージ
REM record.bat
python worktimerecorder.py [batファイルの起動時間] [出勤 or 退勤]

pythonを直接叩いても良さそう

freee APIを叩く準備

freeeのチュートリアルを勧めて、APIを叩ける状態にする。

アプリの作成からClient ID/Client Secretの生成・作成したClient IDを使って認可トークンの生成・認可トークンを使用してアクセストークンとリフレッシュトークンの生成を行います。
いろいろ試したいなら、テスト事業所とテストアカウント作ったほうがいいです。
僕はそれがボトルネックになっていたので自分のアカウントでやりましたが、実際の勤怠をいじるのでお勧めしない

補足として、アプリの権限設定は、[人事労務] 打刻 と[人事労務] 勤怠 を選びました。
image.png

freee APIを叩く

叩く準備が整ったので、実際に叩いてみます。
freeeの以下のチュートリアルを参考にしていきます。
最初のGET/POSTリクエストを行う
freeeのAPIリファレンスはSwaggerで作られているので、このページからAPIを叩くことが可能です。

APIのリファレンスページのAuthorizeのボタンをクリックして、AccessTokenを入力するとログイン状態になり、勤怠やタイムレコーダーAPIが使えるようになります。\プログライズ!ライジングホッパー!!/
image.png

image.png

次にログインユーザー情報を取得して、company_idとemployee_idを控えておきます(他のAPIでよく求められるので)
image.png

控えたIDで、打刻情報の一覧を取得してみます。
Parametersの横のTry itからパラメータを入力して、Executeで実行します。
image.png

以下のようにJSONで返ってきます。
image.png

これを元に、Pythonで勤怠打刻スクリプトを作っていきます。
・・・が、今回はここまでです。(というかここまでしかやってない)

つづく(・ω⊂)<任務完了...

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?