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

R. *_*lon 12 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,或者是否存在使这项工作更有意义的途径?

Tho*_*nan 9

编辑:

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


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

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

一个.打开Google API控制台.

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

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

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

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

  3. 在Drive Integration下添加"OAuth Client 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

不要在这里尝试为Google文档添加auth范围,因为它无法正常工作.Google不希望我们以这种方式使用它,因为驱动应用程序创建的文件应该是该应用程序的私有文件.与Google文档的集成必须是独立的.

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

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