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

时间:2015-05-21 18:51:22

标签: node.js oauth-2.0 google-api google-analytics-api

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

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

  

{[错误:凭据无效]     代码:undefined,     错误:      [{domain:'global',          原因:'authError',          消息:'证书无效',          locationType:'header',          位置:'授权'}]}

我正在使用的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值进行硬编码,但结果仍然相同。

欢迎任何建议!

1 个答案:

答案 0 :(得分:2)

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

PHP API客户端自动检查令牌是否无效,然后在不告诉您(从我可以看到)的情况下更新它。我存储的令牌无效,因此我只需要在Node.js脚本中手动刷新它。