无法通过 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 脚本中手动刷新它。
先介绍一下背景;我有一个基于 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 脚本中手动刷新它。