【发布时间】:2022-08-17 11:04:08
【问题描述】:
我希望能够从 gmail 收件箱中检索电子邮件,但我找不到在服务器环境中正确进行身份验证的方法。传统身份验证使用此:https://developers.google.com/identity/protocols/oauth2 但是我无法在服务器环境中使用 javascript 访问 Web 浏览器,因此我无法进行身份验证。服务帐户不起作用,因为我无法通过它访问我的主要电子邮件地址的收件箱。谢谢。
标签: gmail-api
我希望能够从 gmail 收件箱中检索电子邮件,但我找不到在服务器环境中正确进行身份验证的方法。传统身份验证使用此:https://developers.google.com/identity/protocols/oauth2 但是我无法在服务器环境中使用 javascript 访问 Web 浏览器,因此我无法进行身份验证。服务帐户不起作用,因为我无法通过它访问我的主要电子邮件地址的收件箱。谢谢。
标签: gmail-api
我能找到的最佳解决方案是在计算机上创建身份验证令牌,然后使用 shell 脚本自动通过 ssh 将文件传输到服务器上。
【讨论】:
如果你有权限在服务器上临时打开一个端口,那么你可以使用内置的认证服务器:
flow = InstalledAppFlow.from_client_secrets_file(client_secret_file, scopes)
cred = flow.run_local_server(open_browser=False, port=port)
通过将open_browser 设置为False,脚本会将url 打印到命令行,然后您可以在Web 浏览器中本地打开链接,在成功验证后,Google 将使用您的令牌将您重定向到websever 在您的服务器上运行。您可以在我用于sort my email using machine learning 的脚本中看到此功能的实际效果。
【讨论】: