我希望有人可以帮助我。
请查看下面的源代码。最后命中执行时。我会收到以下错误:
Google.Apis.Auth.OAuth2.Responses.TokenResponseException未处理 _HResult = -2146233088 _message =错误:" access_denied",说明:"请求的客户端未经授权。",Uri:""
我尝试了很多东西。创建用户,列表组等(具有正确的范围)但每次我都得到相同的错误。
我创建了一个服务帐户,Google Developers Console中的所有API都设置为" on" 我用于模仿的用户是完全管理员。
我尝试过几件事,但我必须做些蠢事。 代码看起来很像Stack Overflow上的另一个问题:Google Admin SDK Unable to Create User - Exception 403 Forbidden 但我的不会工作。任何人都可以告诉我我忘了什么吗?
private static readonly string[] Scopes = new string[] { DirectoryService.Scope.AdminDirectoryUser, DirectoryService.Scope.AdminDirectoryGroup, DirectoryService.Scope.AdminDirectoryGroupMember };
static void Main(string[] args)
{
String serviceAccountEmail = "***@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"file.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = Scopes,
User = "admin email address",
}.FromCertificate(certificate));
var service = new DirectoryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "User Provisioning",
});
User newuserbody = new User();
UserName newusername = new UserName();
newuserbody.PrimaryEmail = "bbacon@correct.domain";
newusername.GivenName = "Bob";
newusername.FamilyName = "Bacon";
newuserbody.Name = newusername;
newuserbody.Password = "iambacon";
Google.Apis.Admin.Directory.directory_v1.Data.User results = service.Users.Insert(newuserbody).Execute();
Console.WriteLine("Press any key to continue!");
Console.ReadKey();
}
答案 0 :(得分:4)
在您的管理控制台中,您是否明确授予了客户端ID的权限?仅在开发人员控制台中启用API是不够的,您必须在管理控制台中专门授予此客户端ID范围访问权限,以便在您的域中模拟用户。
转到Google Apps域的管理控制台。
从控件列表中选择安全性。如果您没有看到列出的安全性,请从页面底部的灰色栏中选择更多控件,然后从控件列表中选择安全性。
从选项列表中选择高级设置。
在“身份验证”部分中选择管理第三方OAuth客户端访问。
在客户名称字段中输入服务帐户的客户ID。
在“一个或多个API范围”字段中,输入应授予您的应用程序访问权限的范围列表。例如,如果您需要对Google Drive API和Google Calendar API进行全域访问,请输入:https://www.googleapis.com/auth/drive
,https://www.googleapis.com/auth/calendar
单击“授权”按钮。
如果这解决了权限错误,请告诉我。