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