【问题标题】:Using OAuth 2.0 for Devices - Google API - Google Drive对设备使用 OAuth 2.0 - Google API - Google Drive
【发布时间】:2012-09-19 07:40:53
【问题描述】:

我查看了 developer.google 上的一些文档和 stackoverflow 中的一些问题,我真的很想找到一个客观的答案,关于使用 Google OAuth 服务器对应用程序进行身份验证并授予将文档下载到 Google Drive 的权限没有浏览器交互的帐户。

据我所知,诸如“将 OAuth 2.0 用于服务器到服务器应用程序”、“将 OAuth 2.0 用于设备”之类的文档在这里得到了答案,我找不到一篇文章说“可以授权应用程序在没有浏览器的设备中从通用 Google 云端硬盘帐户获取文件..."。

有没有人尝试过这个旅程并取得了成功?

【问题讨论】:

    标签: google-api oauth-2.0 google-drive-api


    【解决方案1】:

    Devices 流程适用于在没有浏览器的设备上运行的应用程序(花哨的例子可能是显示新 G+ 通知的手表),并要求用户在有浏览器的设备上执行手动步骤。这也是为了访问用户帐户中的数据。

    更新

    正如您所说,您有一个在没有可用浏览器的情况下运行的嵌入式应用程序并希望代表用户访问数据,这绝对是要走的路。然而,这仍然需要用户使用浏览器在另一台设备上登录(一次)。使用此流程获得访问令牌后,您可以手动或使用某些库访问 Google Drive API

    所以您想访问属于特殊帐户的 Google Drive 上的数据,并且只有您的应用程序可以在不涉及浏览器的情况下访问它?

    Service Account服务器到服务器流程)正是您所需要的。然而,这些仅供在网络服务器上使用,否则您的私钥文件必须部署到可以轻松提取的客户端。

    您可以做的一件事是使用您自己的网络服务器,该服务器使用服务帐户从您的 Google 帐户获取数据,并拥有一个仅连接到您自己的网络服务器的客户端应用程序。当然,这也有其缺点,尤其是在锁定您的网络服务器以使第三方客户端无法访问它时。

    【讨论】:

    • 用你的想法澄清我的问题,你可以想象我有一个具有嵌入式系统、JVM 和其他资源的设备,但它没有原生浏览器并且 UI 有限。所以我希望用户打开我的应用程序(在这个设备中),输入他的谷歌用户名和密码帐户,他将能够看到他在谷歌驱动器上在线的一些文档的列表,并且可能会看到一个文本文件内容到我的应用程序。使用以前的 Google 文档 API 可以轻松完成,但直到现在,我还无法了解如何使用新的 Google Drive API 来做到这一点。你有什么想法吗?
    • 啊,感谢您的澄清,现在完全清楚您要实现的目标。我更新了我的答案;)
    • 再次感谢您!那么没有浏览器就没有办法授权应用吗?
    • 没有。 OAuth 的一个目的是用户无需将其密码提供给第三方,而只需直接在提供商网站(他可以信任)上提供。
    【解决方案2】:

    可以,但需要使用浏览器。我已经成功地让 OAuth 2.0 在没有浏览器的 IBM i(AS/400、iSeries、System i,无论现在叫什么名字)上运行。到目前为止,我已经实现了 Calendar 和 Google Cloud Print API。

    在 OAuth 2.0 协商期间,您将收到一个 URL 和一个代码。您需要显示用户要访问的 URL,然后输入代码以授予该特定 API/范围的权限。我在这里的文档中有一个示例:

    http://docs.bvstools.com/home/greentools-for-google-apps/docs/g4g-base-commands/g4gregsvc

    但是,现在的问题是驱动 API 尚不适用于设备。但是,谷歌已经表示应该很快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 2016-09-14
      • 1970-01-01
      相关资源
      最近更新 更多