Google云端硬盘API:避免手动身份验证

时间:2019-02-06 22:10:37

标签: python google-api google-drive-api google-oauth google-oauth2

我想编写一个可以连接到Google Drive API的python脚本,而不必在运行脚本的每个设备上手动进行身份验证。

我正在为研究研究编写一些python代码,该研究代码将在不同的研究位置运行。出于数据隐私的原因,我们无法在本地存储数据,而需要将其写入云(最好是Google云端硬盘)。我们团队的成员不会在所有运行该软件的位置上演示,因此对于我们来说,任何形式的初始手动身份验证(在OAuth的不同站点上输入用户名和密码)实际上都是我们无法做到的。

我已经研究了Google Drive API(Python),并且想知道运行我的脚本的设备是否可以通过一种方法来获取Refresh令牌(和后续的Access令牌)来修改Google表格,而无需手动进行在每个设备上进行身份验证。

是否可以通过Google Drive API来实现这一目标(通过代码可以存储某种“秘密”信息)?如果没有,是否还有其他云服务可以满足此要求?

另外,python脚本作为可执行文件的一部分运行(由Vizard产生,可能无关紧要,但以防万一)

1 个答案:

答案 0 :(得分:0)

是的,可以完成-参见How do I authorise an app (web or installed) without user intervention?

但是,由于两个原因,这可能不是一个好主意。如果您分发带有嵌入式机密的代码(从技术上讲,机密是“刷新令牌”),则它们往往不会长时间保持机密。其次,刷新令牌有可能过期,并且您的用户会死在水中。

我建议您考虑:-

  • 服务帐户
  • 编写一个OAuth代理,您可以将其免费托管在Google AppEngine上,该代理将所有秘密内容存储在服务器上,并且您的应用可以根据需要从中获取访问令牌。