我正在为Emacs开发Google Drive界面。这个概念是Emacs可以提供一种平台无关的方式来加载,修改和保存存储在Google Drive中的文本文档。我已经注册了我的应用,可以使用OAuth2进行身份验证,并使用文档列表API获取文件列表,但是当我尝试使用Google Drive API执行插入时,我看到了一个错误:
“经过身份验证的用户尚未安装具有客户端ID的应用...”
进一步了解,我似乎需要在Chrome网上应用店中发布我的Emacs应用程序才能访问Drive API。这对我来说没有意义......我注意到Google Drive正在开发一个FUSE项目,这表明本地开发是可行的。但是,当我浏览代码时,我没有看到Chrome Web Store组件来使其正常工作。
我是否试图滥用API,或者是否有使这项工作更有意义的途径?
答案 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”下,您需要执行以下操作:
添加“支持网址”(必填)
至少添加一个小的16x16应用程序图标(必填)
在云端硬盘整合下添加“OAuth客户端ID(必填)”(我只是在修补,这似乎是关键字段。)
添加“打开网址(必填)网址,以便从Google云端硬盘用户界面为您的应用打开。”
选中“多文件支持”
添加一些MIME类型和文件扩展名,“text / plain”和txt例如
添加auth范围:
请勿在此处尝试为Google文档添加auth范围,因为它无效。 Google不希望我们以这种方式使用它,因为驱动应用程序创建的文件应该是该应用程序的私有文件。与Google文档的集成必须是独立的。
现在我知道你一定在想“我为什么要添加其中的一些...”这是因为表单使它们成为必填字段。在我的网站中,我添加了几个指向静态HTML页面的URL。
完成上述操作后,请清理状态并重新安装Chrome应用。然后再次尝试你的代码,它应该停止给你一个403。