12

我正在为 Emacs 开发 Google Drive 界面。这个概念是 Emacs 可以提供一种与平台无关的方式来加载、修改和保存存储在 Google Drive 中的文本文档。我已经注册了我的应用程序并且可以使用 OAuth2 进行身份验证并使用 Docs List API 获取文件列表,但是当我尝试使用 Google Drive API 执行插入时,我看到一个错误:

“经过身份验证的用户尚未安装具有客户端 ID 的应用程序......”

进一步阅读,我似乎需要在 Chrome Web Store 中发布我的 Emacs 应用程序才能访问 Drive API。这对我来说没有意义......我注意到有一个 FUSE 项目正在为 Google Drive 开发,这表明本地开发是可能的。然而,当我浏览代码时,我没有看到 Chrome Web Store 组件可以让它工作。

我是在试图滥用 API,还是有办法让这项工作更有意义?

4

1 回答 1

9

编辑:

根据 Google Drive 团队的 Ali Afshar 的说法,使用此 API 不再需要安装。因此,以下内容可能不再相关,但将留作历史用途。


所以,首先,从我们都在做的意义上说,API 不支持应用程序开发,不过我不会使用本机这个词。好消息是我一直在做一些研究,而 Google Drive 实际上只是 Google Docs 的品牌重塑。因此,出于相同目的,Google Docs API 也是一个不错的选择。

无论如何,这是解决错误的步骤:“经过身份验证的用户尚未安装具有客户端 ID 的应用程序......”为了这个答案,这是一个 403 错误。这些步骤假设您已根据需要在 chrome 网上商店中设置了一个应用程序,并安装了它。我也在我的本地机器上工作,我的项目: http: //github.com/tom-dignan/gdrive-cli我已经克服了这个错误,所以我认为你应该继续使用你的 emacs 版本,因为我认为我们可以完成这项工作。

一个。打开Google API 控制台

湾。确认您已经在“API 访问”下启用了 API,应该启用 API 和 SDK for Google drive。在那里,您可以获得您的客户端机密/api 密钥等。我几乎肯定你已经这样做了,所以继续 C.(这是为可能错过它的其他人准备的)

C。在左侧导航栏中的“Drive SDK”下,您需要执行以下操作:

  1. 添加“支持 URL”(必需)

  2. 添加至少一个 16x16 的小应用程序图标(必需)

  3. 在 Drive Integration 下添加“OAuth Client ID(必需)”(我只是在修补,这似乎是关键字段。)

  4. 添加“打开 URL(必需)URL 以从 google drive UI 为您的应用打开。”

  5. 勾选“多文件支持”

  6. 添加一些 MIME 类型和文件扩展名,例如“text/plain”和 txt

  7. 添加身份验证范围:

    https://www.googleapis.com/auth/userinfo.email

    https://www.googleapis.com/auth/userinfo.profile

不要费心尝试在此处添加 Google Docs 的 auth 范围,因为它不起作用。Google 不希望我们以这种方式使用它,因为驱动应用程序创建的文件应该是该应用程序私有的。与 Google Docs 的集成必须分开。

现在我知道您一定在想“为什么我必须添加其中一些……”这是因为表单使它们成为必填字段。在我的网站中,我放置了几个指向静态 HTML 页面的 URL。

完成上述操作后,清理您的状态并重新安装您的 chrome 应用程序。然后再次尝试您的代码,它应该停止给您 403。

于 2012-04-27T14:38:42.053 回答