Oauth 2.0 Google OAuth2服务帐户授权

Oauth 2.0 Google OAuth2服务帐户授权,oauth-2.0,google-drive-api,service-accounts,Oauth 2.0,Google Drive Api,Service Accounts,我正在尝试使用“服务帐户”授权执行GoogleDrive API调用 我正在调用API,但是files.list返回空集,同时驱动器不是空的。 我想我也应该指定prn字段,以便代表具体用户执行调用(当未指定prn时,我真的不知道调用的是谁)。问题是,当我指定prn授权时,会返回我access\u denied错误 { "error" : "access_denied" } 文档说明我应该从控制面板启用客户端API访问 下面是我所做的,但这没有多大帮助,它仍然给我访问权\u拒绝 这里怎么

我正在尝试使用“服务帐户”授权执行GoogleDrive API调用

我正在调用API,但是
files.list
返回空集,同时驱动器不是空的。 我想我也应该指定
prn
字段,以便代表具体用户执行调用(当未指定
prn
时,我真的不知道调用的是谁)。问题是,当我指定
prn
授权时,会返回我
access\u denied
错误

{
  "error" : "access_denied"
}
文档说明我应该从控制面板启用客户端API访问

下面是我所做的,但这没有多大帮助,它仍然给我
访问权\u拒绝


这里怎么了?

你几乎是对的。您确实需要授权您的应用程序访问域的驱动器。为此,您必须将您选择的作用域与您可以在API控制台中找到的服务帐户id相关联。这个关联是在你的域的管理面板中建立的,你在其中发布了一个屏幕截图

我想你已经明白了,但是别忘了在Oauth2请求中使用服务帐户电子邮件


仅供参考,如果您不指定prn,您将访问应用程序的驱动器,而该驱动器无法通过Web UI访问

谢谢。我不知道应用程序的驱动器。关于授权,我将在一小时后再次检查并回复。再次感谢。是否有关于此
应用程序驱动器的文档
?它只是一个没有web UI的常规驱动器帐户。我不知道一个应用程序有多少可用空间。谢谢。所以我只是检查了我的测试应用程序。在Google Api控制台中,有服务帐户客户端的
客户端ID
电子邮件地址
。我正在使用OAuth2请求的
iss
字段中的
Email address
。是吗?是的,这是国际空间站的电子邮件地址。还要检查您的doamin管理面板。在那里它必须告诉我客户ID