谷歌驱动器服务帐户和“未经授权的客户端或请求范围”


Google drive service account and “Unauthorized client or scope in request”

我试图通过使用谷歌开发者控制台的Google_Client.php类示例的服务调用将文件上传到谷歌驱动器帐户。2个月前,我成功地使用了在开发者控制台设置的服务帐户,以及先前设置的谷歌驱动器帐户。

我现在正试图用新的服务帐户和驱动器帐户做同样的事情,但我得到标题中的错误。据我所知,我做的一切都是一样的。我的研究表明,我需要让服务帐户的电子邮件地址访问谷歌驱动器上的一个目录,但我怎么也不知道该怎么做。

我第一次这样做的唯一原因是我首先将该帐户设置为web应用程序而不是服务帐户,并使用浏览器的同意屏幕来批准驱动器帐户访问。

顺便说一句,我在stackoverflow上查看了其他类似的帖子,没有一个有帮助。

老问题,但是另一个答案中的链接已经失效了。

我的研究表明,我需要让服务帐户的电子邮件地址访问谷歌驱动器上的一个目录,但我怎么也不知道该怎么做。

你可以通过谷歌驱动器UI后,你有电子邮件地址:

  1. 从https://console.developers.google.com/apis/credentials获取服务帐户的电子邮件地址
  2. 在Google Drive中,导航到要共享的文件夹
  3. 右键单击文件夹
  4. 单击"Share"
  5. 输入您从步骤1中获得的电子邮件地址,然后单击"完成"。

让你的google api项目访问你的驱动器帐户的最简单的方法是按照下面的简单步骤设置一个简单的html页面,显示一个允许访问驱动器帐户的同意按钮:https://developers.google.com/drive/web/quickstart/quickstart-js

你只需要运行一次快速开始的例子,然后如果你去你的谷歌驱动器帐户,点击设置->管理应用程序。滚动到列表的底部,你应该看到你的google api项目。

现在你将能够做服务调用与api访问你的谷歌驱动器帐户