freee APIのアクセストークンの有効期間は24時間です。
有効期間をすぎるとそのアクセストークンは使えなくなります。
リフレッシュトークンでアクセストークンを更新することで、継続して利用することができるので、その更新手順を書いていきます。
以下2つのSTEPで書いていきます。
- リフレッシュトークンを取得する
- リフレッシュトークンを使って更新する
STEP1 リフレッシュトークンを取得する
まずは、freee APIでアクセストークンを取得してみるでアクセストークンを取得すると、このような結果が返ってきます。
{
"access_token":"アクセストークン",
"token_type":"bearer",
"expires_in":86400,
"refresh_token":"リフレッシュトークン",
"scope":"read write default_read",
"created_at":作成日時
}
今回はこの中の「refresh_token」を使います。
STEP2 リフレッシュトークンを使って更新する
スクリプトエディタに以下のコード.gsを貼り付けて
client_id, client_secret, refresh_tokenをそれぞれ貼り付けて保存します。
コード.gs
var client_id = 'Client IDを貼り付けます';
var client_secret = 'Client Secretを貼り付けます';
var refresh_token = 'リフレッシュトークンを貼り付けます';
/************************************
手順
0. 事前にアクセストークン, リフレッシュトークンを取得しておく
1. 上部の1,2行目にアプリストアのClient ID, Client Secretを貼り付ける
2. 上部の3行目にアクセストークンと一緒に取得したrefresh_tokenを貼り付ける
3. refreshTokens()を実行する
4. 上部メニューの「表示」>「ログ」に更新されたトークン情報が表示される
↓以下のコードは触らなくてOK
************************************/
function refreshTokens() {// アクセストークンを更新してログに出す
var response = runRefresh();
Logger.log(response);
}
var token_url = 'https://accounts.secure.freee.co.jp/public_api/token';
function runRefresh() {// refresh_tokenを使って更新したトークン情報を返す
var payload = {
'grant_type': 'refresh_token',
'client_id': client_id,
'client_secret': client_secret,
'refresh_token': refresh_token
}
var options = {
'method': 'post',
'contentType': 'application/x-www-form-urlencoded',
'payload': payload
}
var response = UrlFetchApp.fetch(token_url, options);
return response;
}
|
「実行」>「関数を実行」>「refreshTokens」で実行します。
実行後、「表示」>「ログ」を開きます
access_tokenとrefresh_tokenが更新されたログが出力されます。
補足
次回refreshTokens()を実行する時は、更新後のログに出力されたrefresh_tokenを使います。
古いrefresh_tokenを使うとこのようなエラーが出ます。
関連記事
freee APIでアクセストークンを取得してみる
参考
アクセストークンを取得する
https://app.secure.freee.co.jp/developers/tutorials/3



