エンジニアの卵の成長日記

http://com.nicovideo.jp/community/co3560405

【Node.js】GoogleAPIのOAuth2の認証が1時間で切れてしまう問題

https://developers.google.com/google-apps/calendar/quickstart/nodejsのサンプルでは
.credentials/calendar-nodejs-quickstart.json

{
    "access_token": "アクセストークン",
    "refresh_token": "アクセストークンを更新するためのトークン",
    "token_type": "Bearer",
    "expiry_date": アクセストークンが使えなくなる期限
}

を作成し、このファイルを更新せずに認証に使っている
この認証は1時間で使えないようになってしまう


ニコ生で放送中に優秀なエンジニアさんが来てくださり、その方に助けてもらいながら解決することができました
本当にありがとうございました!

live.nicovideo.jp


解決策としてはrefreshAccessToken()メソッドを利用する
stackoverflow.com
authorize()メソッドの中を修正する

fs.readFile(TOKEN_PATH, function(err, token) {
    if (err) {
        getNewToken(oauth2Client, callback);
    } else {
        oauth2Client.credentials = JSON.parse(token);
        oauth2Client.refreshAccessToken(function(err, tokens) {
            if (err) {
                console.log(err);
                return;
            }
            oauth2Client.credentials = tokens;
            storeToken(tokens);
        });
        callback(oauth2Client);
    }
});


これで解決!のはず。。。