我正在开发一个简单的脚本(使用Ruby和Google -api-client gem)供个人使用,需要定期从我的Google Drive帐户下载文件。然后,脚本将处理该文件并将结果发送给我一封电子邮件。我明白,我需要使用谷歌驱动器API,以做到这一点。我已经在谷歌开发者控制台注册了我的"应用程序",但是当涉及到访问数据时,我感到困惑。
Google为我的应用程序类型提供了3个选项:
- Web应用程序(由Web浏览器通过网络访问)
- 服务帐户(代表您的应用程序调用Google api)
- 已安装应用程序(在台式计算机或手持设备上运行)
我的脚本将作为cron作业运行,不需要任何用户输入。这让我觉得"服务账户"是正确的选择。但是当我点击链接了解更多关于"服务帐户"的信息时,第一句话是"谷歌API(如预测API和谷歌云存储)可以代表您的应用程序而不访问用户信息",这表明这种类型不适合访问受保护的信息。
所以:我怎么能写一个脚本访问私人数据从谷歌驱动器定期不需要用户输入在访问时间?我认为这是可能的,只是生成一个关键,并嵌入到这个脚本,但我不知道如何做到这一点。
服务帐户将是您想要的帐户。如果你有一个Google Apps帐户,你需要授权访问你的服务帐户。如果您不这样做,我不知道如何使服务帐户与私有数据api一起工作。
SA需要域范围授权(DWD):https://developers.google.com/admin-sdk/directory/v1/guides/delegation
问题是,DWD授予SA不受限制地访问该域的google工作区的所有帐户。我还在寻找一种方法来限制委托到一个帐户。