获取invalid_grant且令牌不令人耳目一新。下面是如何构建authurl以及访问令牌中的内容。我也尝试过手动刷新,但它不起作用(下面再次提供代码)。
相关链接:
https://github.com/google/google-api-nodejs-client
https://github.com/google/google-auth-library-nodejs
var authUrl = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES
});
{"access_token":"XX","refresh_token":"XX","token_type":"Bearer","expiry_date":1}
oauth2Client.refreshAccessToken(function(err, tokens) {
oauth2Client.credentials = tokens;
storeToken(tokens);
pullSheetsData(oauth2Client);
});
更多细节: 它工作约8小时,然后开始给我invalid_grant。如果我正在进行任何API调用并不重要,它会在这段时间后超时,如果我想继续,我必须生成一个新的客户机密码。例如,我可以生成一个新的客户端密钥,运行快速启动,进行1次测试调用,关闭应用程序,然后在8小时内再次尝试,它将给我invalid_grant。当我第一次得到客户的秘密时,它工作了将近一个半月没有任何问题。一旦它开始给出错误,它总是大约相同的时间。
我已经查看过各种不同的建议解决方案,但似乎没有一种方法可以解决我的问题。最值得注意的是,这个link提出了一长串解决方案,但似乎都没有。
最后,这是一个服务器端node.js slack bot,它从谷歌表中提取数据。我使用谷歌开发者页面上提供的quickstart来生成凭据。之后,应用程序上面/中的代码应该能够使用凭据处理任何内容。在测试时,我从未遇到过这个问题,但是在将它移动到docker之后,它就开始发生了。它现在正在船坞上或船坞上发生,所以我不认为这是相关的,但我想应该提一下。
如果有一个非常明显的错误,请原谅我。这是我的第一个使用Oauth2和我的第一个开发方项目的应用程序。任何帮助或想法都会很棒。感谢。