为什么我在本地使用Google Drive API时出现“经过身份验证的用户未安装带有客户端ID的应用”错误?

时间:2012-04-27 06:36:43

标签: emacs elisp google-drive-api

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

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

进一步了解,我似乎需要在Chrome网上应用店中发布我的Emacs应用程序才能访问Drive API。这对我来说没有意义......我注意到Google Drive正在开发一个FUSE项目,这表明本地开发是可行的。但是,当我浏览代码时,我没有看到Chrome Web Store组件来使其正常工作。

我是否试图滥用API,或者是否有使这项工作更有意义的途径?

1 个答案:

答案 0 :(得分:9)

修改

根据Google云端硬盘团队的Ali Afshar的说法,不再需要安装此API。因此,下面的内容可能不再具有相关性,但会留作历史用途。


所以,首先,API不支持应用程序开发,因为我们都在这样做,我不会使用native这个词。好消息是我一直在做一些研究,Google Drive实际上只是对Google Docs进行品牌重塑。因此,对于相同的目的,Google Docs API也是一个不错的选择。

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

一个。打开Google APIs console

湾确认您已在“API访问”下启用了api,并且应启用API和SDK for Google驱动器。在那里你得到你的客户机密/ api密钥等。我几乎肯定你已经做到了这一点,所以继续前进到C.(对于其他可能错过它的人来说,这是在这里)

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

  1. 添加“支持网址”(必填)

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

  3. 在云端硬盘整合下添加“OAuth客户端ID(必填)”(我只是在修补,这似乎是关键字段。)

  4. 添加“打开网址(必填)网址,以便从Google云端硬盘用户界面为您的应用打开。”

  5. 选中“多文件支持”

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

  7. 添加auth范围:

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

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

  8. 请勿在此处尝试为Google文档添加auth范围,因为它无效。 Google不希望我们以这种方式使用它,因为驱动应用程序创建的文件应该是该应用程序的私有文件。与Google文档的集成必须是独立的。

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

    完成上述操作后,请清理状态并重新安装Chrome应用。然后再次尝试你的代码,它应该停止给你一个403。