LANG SELRCT

コードを書く場所

2019年7月18日木曜日

freee APIで勤怠打刻してみる


人事労務freeeのスマホアプリからも出退勤の打刻はできますが、ここではAPIを利用して打刻してみます。

clock_inで出勤して、clock_outで退勤するコードをコード.gsに書きました。


事前準備
  1. アクセストークンを取得したい  でアクセストークンを取得します
  2. GETしてみる(ログインユーザの取得) でcompany_id, employee_idを取得します
  3. 勤怠打刻機能を利用できるように設定する

※実際の事業所ではなく、テスト環境を作って試すこともできます。
freeeで開発用テスト環境を作成してみる


APIで打刻してみる


STEP1
コード.gsに以下3つの情報を貼り付けます
  • access_token
  • company_id
  • employee_id


STEP2
clockIn()を実行すると出勤時刻が打刻されます


STEP3
clockOut()を実行すると退勤時刻が打刻されます



コード.gs
var access_token = 'アクセストークンを貼り付ける';
var company_id = 対象のcompany_idを貼り付ける;
var employee_id = 対象のemployee_idを貼り付ける;

function clockIn() {// 出勤
  postData('clock_in');
}

function clockOut() {// 退勤
  postData('clock_out');
}

function postData(clock_type) {  
  var url = 'https://api.freee.co.jp/hr/api/v1/employees/' + employee_id + '/time_clocks';
  var method = 'post';
  var payload = getPayload(company_id, clock_type);
  var response = runMethod(method, url, access_token, payload);
  Logger.log(response);
}

function getPayload(company_id, clock_type) {
  var postdate = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy-MM-dd'); 
  var data = {
    'company_id' : company_id,
    'type' : clock_type,
    'base_date' : postdate
  }
  var json = JSON.stringify(data);
  return json;
}

function runMethod(method, url, access_token, payload) {
  var options = {
    'method': method,
    'contentType': 'application/json',
    'headers': { 'Authorization': 'Bearer ' + access_token },
    'payload': payload
  }
  var response = UrlFetchApp.fetch(url, options);
  return response;
}


参考