我是个新手,所以请忍受我。在
我正在尝试建立一个Google云功能,可以访问同一个域上的单个GMail帐户,下载一些电子邮件并将其推送到云存储。老实说,我只想在脚本中使用电子邮件和密码(使用googlekms/w环境变量?)但我知道这是不可能的,而且OAuth2是必需的。在
我在GCP中设置了一个OAuth客户机,并运行了GMail API Python Quickstart指南。在本地运行它时,系统会提示我允许访问,并且令牌会被保存,这样以后的运行就可以在没有提示的情况下工作。在
我将Cloud函数与pickle文件一起部署,以测试刷新令牌是否仍然有效,并计划以后如何使用KMS使其更安全。但是装载泡菜时有一个问题:
UnpicklingError: invalid load key, '\xef'
这样看起来pickle在上传时被压缩/损坏。在
这甚至是一种明智的做法吗?我怎么能这么做?电子邮件地址是我的,所以我希望我可以只验证一次就可以完成。在
顺便说一下,我不可能使用域委派服务帐户,也不可能使用IMAP。在
由于您无法执行域委派服务帐户,因此您可以尝试按照本指南设置server side authorization。这听起来像你想要的,因为它要求用户授权应用程序一次,然后重用该令牌。这里有一个codelab,它将带您了解身份验证部分。在
或者,您可以使用推送通知。听起来你当前的设计是定期轮询gmailapi来查找新邮件,这也包括在云函数中授权访问该帐户。但是,如果利用推送通知,既可以实时获取数据,又可以避免授权云函数读取gmailapi。See guide here.
然而,最简单的解决方案可能是使用app scripts。如果您将云函数设置为通过HTTP目标触发,则可以编写一个应用程序脚本来ping该URL,其中包含要发送给GCS的消息。Docs here。在
相关问题 更多 >
编程相关推荐