Google Sheet API error 调用者没有权限

Google Sheet API error The caller does not have permission

我正在尝试使用 .net 核心控制台应用程序中的服务帐户访问 google sheet。我可以从我的个人帐户中阅读 google sheet。它没有问题。但是尝试在组织域中访问 google sheet,它说没有权限访问 sheet。 我已与服务帐户共享 google sheet。

   GoogleCredential credential;
            using(var stream = new FileStream("client_secret.json",FileMode.Open,FileAccess.Read))
            {
                credential = GoogleCredential.FromStream(stream).CreateScoped(Scopes);

            }
            
            service = new SheetsService(new Google.Apis.Services.BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });



  var range = $"{Sheet}!A:F";
           
            var request = service.Spreadsheets.Values.Get(SpreadsheetId, range);
            var response = request.Execute();

但是它在执行时抛出权限错误。有什么方法可以使用组织域进行访问吗?是不是因为组织限制用户只能访问组织域中的文件

您获得访问权限的原因是由于组织的政策,您也陈述了自己的原因。

服务帐户是应用程序而非个人使用的一种特殊帐户,与用户帐户不同,它们不属于您的 Google Workspace 域。

一种方法是使用服务帐户来委派域范围的权限。这是什么意思?好吧,从本质上讲,您最终会在 具有 访问 sheet 的域中模拟用户,并通过服务帐户对该用户执行请求。

但是,对此服务帐户的访问权限需要由域管理员而非普通用户授予。可以找到执行此操作的步骤 here.

参考