如何刷新Google Analytics(分析)报告API v3的访问令牌

所以我正在研究一个Node.js应用程序,它将调查Google Analytics(分析)API的x秒数量。 我已经设置了一个“服务帐户”,并将p12键转换为一个.pem文件。 初始设置看起来像这样:

 var authClient = new google.auth.JWT(authData.serviceEmail, authData.keyFile, null, authData.scope, ''); authClient.authorize(function(err, tokens) { if (err) { winston.log('error', 'Error authorizing with GA', {error: err}); return; } setInterval(function() { analytics.data.realtime.get({ 'auth': authClient, ... }, function (err, body) { // getting 401 error here }) }, 20000); }); 

我还没有意识到最初的代币有1个小时的到期date; 但是我收到的令牌看起来像这样:

 { access_token: ..., token_type: 'Bearer', expiry_date: NaN, refresh_token: 'jwt-placeholder } 

我的问题是,一旦我得到401 invalidCredentials错误,我是否只是重新授权,以获得一个新的访问令牌能够从谷歌分析轮询? 我是JWT的新手,这似乎是授权方式太多了。 这是有限制吗?

作为参考,我正在使用Google API Node.js客户端库

是的,就像你第一次重buildauthClient一样。 服务帐户没有像其他OAuthstream一样的刷新令牌,只需在当前访问令牌到期时重新build立authentication即可。