【问题标题】:Access Google Drive API without creating WebApp?在不创建 WebApp 的情况下访问 Google Drive API?
【发布时间】:2014-05-12 16:02:40
【问题描述】:

首先,如果我是个笨蛋并且遗漏了一些明显的东西,我深表歉意,但我已经花了几个小时搜索文档并且迷路了。

我正在尝试编写一个 python 脚本,它将一堆图像上传到单个用户的 Google Drive。用户已经存在并且永远不会改变。我不是在编写网络应用程序,也不打算使用任何用户界面。一切都将通过代码完成。

据我所知,我可以从 Google 文档中了解到,我有两个选择:

1) 编写一个网络应用程序并注册它以使用 Drive DSK。这当然需要为 Web 应用提供 url 等。

2) 创建一个服务帐户,将我的“应用”绑定到一个新的服务帐户电子邮件。

这些选项都不适合我。有什么方法可以简单地登录到单个用户帐户并通过 python 脚本访问他们的驱动器?

【问题讨论】:

  • 为什么您提供的选项“不适合您”?
  • 因为我不是在写一个网络应用程序,它只是一个脚本。而且我需要访问一个已经存在的用户帐户,而不是像使用服务帐户那样绑定到新帐户。

标签: google-drive-api


【解决方案1】:

有一个已弃用的 API,称为 ClientLogin,可让您使用用户名和密码登录以访问该云端硬盘数据。

但基本的想法是,您应该使用更安全的东西——从用户的角度来看——允许他们在不给他们的密码的情况下授权你。

对于您的用例,用户可能是您或您认识的人,并且您正在通过更个人化的授权访问他们的帐户。在这种情况下,ClientLogin 可能是您的最佳选择。如果这是一个旨在供任意用户使用的应用程序,那么弃用 ClientLogin 是有充分理由的,我强烈建议您硬着头皮选择一个受支持的选项。

【讨论】:

  • 用户已明确授权我访问他们的驱动器。该脚本本身永远不会有任何“用户”。它每月运行一次,以编程方式生成一些文件,然后将它们上传到该用户的帐户,以便他们查看。
  • 我的用例很奇怪吗?对我来说,通过编程登录的 api 访问是一个完全不受支持的用例,这似乎很奇怪。
  • 对于这个用例,您仍然打算让用户通过 Web 浏览器授权您的脚本。见developers.google.com/accounts/docs/OAuth2ForDevices
  • 在阅读了有关 ClientLogin 的内容后,看起来甚至需要创建一个 UI 元素来捕获用户的登录信息,包括验证码。
  • 根据我的经验,从未使用过验证码要求。
【解决方案2】:

正确的解决方案是将授权阶段与访问阶段分开。授权过程只需要运行一次,并且可以从一个简单的网站完成。其结果是类似于用户名/密码的刷新令牌。您需要了解安全隐患。确保您只授予 drive.file 范围,以尽量减少安全漏洞的影响。

由于您要上传图片,因此您可能还想查看 picassa api。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多