我已经在Nodejs中设置了使用Gmail API发送电子邮件的代码。它在本地机器上工作得很好。它通过访问URL来要求输入代码。像这样,
Authorize this app by visiting this URL: someURL
Enter the code from that page here: copy-paste code here这是谷歌在Node.js Quickstart for Gmail之后自动完成的,它会自动生成token.json。在开发过程中,一切都运行得很好。
现在,在生产环境中,我使用PM2和Nginx部署我的应用程序。因此,现在每个节点服务器都在后台运行,并在文件中生成日志。
我在日志文件Enter the code from that page here:中看到了上面的提示。但是,由于日志是通过管道传输到文件的,所以我无法粘贴代码,因为我无法访问标准输入。
我尝试从本地生成token.json,并在服务器中使用它,但似乎不起作用。
我如何解决这个问题,有什么方法可以解决这个问题吗?
注意:授权和发送邮件的代码工作正常。我不在这里张贴,因为我不想让问题变得杂乱无章。
发布于 2020-03-31 16:40:39
如果你想创建一个不需要用户交互的服务器应用程序,而不是使用常规的OAuth,你可以尝试使用Service Account。
尽管要考虑到服务帐户本身没有Gmail API,因此您应该启用Domain-Wide Delegation来模拟该域的另一个用户。
如果您坚持对真实用户进行身份验证,则可以在实现PM2之前检索token.json,然后再使用它。
https://stackoverflow.com/questions/60934204
复制相似问题