【发布时间】:2019-09-20 03:37:26
【问题描述】:
我目前正在尝试通过 C# 与 Google Admin SDK 集成,以便我们可以通过自己的系统管理用户。但是,在运行项目时出现错误:未经授权的客户端。
我已经通过超级管理员帐户完成的事情:
- 设置服务帐号
- 在服务帐户上启用 GSuite 域范围委派
- 启用 API 访问
- 将服务帐户客户端 ID 添加到具有范围 (https://www.googleapis.com/auth/admin.directory.user) 的 API 客户端访问中
这是我正在使用的代码。
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(_googleServiceSettings.Client_Email)
{
ProjectId = _googleServiceSettings.Project_Id,
User = "superadmin@google.com",
Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser }
}.FromPrivateKey(_googleServiceSettings.Private_Key));
var service = new DirectoryService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "Test API"
});
var request = service.Users.Get("user@google.com");
var result = await request.ExecuteAsync();
我得到的完整错误是
执行请求时发生未处理的异常。 Google.Apis.Auth.OAuth2.Responses.TokenResponseException:错误:“unauthorized_client”,描述:“客户端未授权使用此方法检索访问令牌,或客户端未授权任何请求的范围。”,Uri:“”
【问题讨论】:
标签: c# google-api google-admin-sdk google-api-dotnet-client google-workspace