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

有点背景第一; 我有一个基于PHP的应用程序处理Google OAuthstream程,并将生成的访问令牌存储在数据库中。 我可以在另一个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); }); 

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

任何build议,欢迎!

在深入挖掘PHP和Node.js API库的代码之后,我find了答案。

PHP API客户端会自动检查该令牌是否无效,然后在不通知您(从我所能看到的)的情况下对其进行更新。 我存储的标记是无效的,因此我只需要在Node.js脚本中手动刷新它。