【发布时间】:2022-09-19 16:43:01
【问题描述】:
尝试通过获取用户列表来访问目录 api 时出现以下错误
Google.Apis.Auth.OAuth2.Responses.TokenResponseException:错误:“unauthorized_client”,描述:“客户端未经授权无法使用此方法检索访问令牌,或者客户端未获得任何请求范围的授权。”,Uri:“”
根据我之前的谷歌搜索和阅读堆栈溢出,我不确定是什么原因造成的。据我所知,我已经正确设置了一切。我将其设置为以非常相似的方式使用驱动器 api,并且效果很好。
我的服务帐户确实具有域范围的委派,这就是为什么我认为它可能与错误的第二部分有关。有什么想法可能导致这种情况吗?
protected async virtual Task<DirectoryService?> GetDirectoryService() { if (currentDirectory == null) { string[] scopes = new string[] { DirectoryService.Scope.AdminDirectoryUser }; var initializer = new ServiceAccountCredential.Initializer(configuration["GoogleServiceAccount:AccountEmail"]){Scopes = scopes, User = configuration["GoogleServiceAccount:UserEmail"] }; var cred = new ServiceAccountCredential(initializer.FromPrivateKey(configuration["GoogleServiceAccount:SecretKey"])); currentDirectory = new DirectoryService(new BaseClientService.Initializer { HttpClientInitializer = cred, ApplicationName = "DriveAPI" }); } return currentDirectory;
【问题讨论】:
标签: c# google-admin-sdk google-workspace service-accounts google-api-dotnet-client