无法通过 Google API node.js SDK 授权使用现有访问令牌

Unable to authorize using existing access token with Google API node.js SDK

先介绍一下背景;我有一个基于 PHP 的应用程序,它处理 Google OAuth 流程并将生成的访问令牌存储在数据库中。我可以在另一个 PHP 脚本中完美地使用此访问令牌,所以我认为令牌没有过期。

当我尝试在 node.js 脚本中使用访问令牌时出现问题。我总是从 Google API.

得到这个错误

{ [Error: Invalid Credentials] code: undefined, errors: [ { domain: 'global', reason: 'authError', message: 'Invalid Credentials', locationType: 'header', location: 'Authorization' } ] }

我使用的node.js代码如下,供参考;

var CLIENT_ID = 'CLIENT_ID';
var CLIENT_SECRET = 'CLIENT_SECRET';
var REDIRECT_URL = 'REDIRECT_URL';

var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

oauth2Client.setCredentials({
  access_token: 'ACCESS_TOKEN'
});

var analytics = google.analytics('v3');

analytics.management.accounts.list({
    auth : oauth2Client
}, function(err, resp) {
   console.log(err);
   console.log(resp);
});

我已经尝试在测试脚本中对 access_token 值进行硬编码,但结果仍然相同。

欢迎提出任何建议!

在深入研究 PHP 和 Node.js API 库的代码后,我找到了答案。

PHP API 客户端自动检查令牌是否无效然后更新它而不告诉你(据我所知)。我存储的令牌无效,因此我只需要在 Node.js 脚本中手动刷新它。