0

我正在使用 Google Admin SDK API 使用独立 C# 代码在 Google 中配置用户/组,所有操作,包括创建用户、更新用户、创建组、添加成员、获取成员、搜索用户等现在都运行良好我正在尝试调用 Group Setting API 来更新一些组设置,但是我得到了一个

需要登录异常 (401)。

我在服务帐户范围中添加了组设置,并在 Google 管理控制台的安全设置中添加了相同的组设置并在开发者控制台范围中启用了组设置: GroupssettingsService.Scope.AppsGroupsSettings 管理控制台安全设置:https ://www.googleapis.com /auth/apps.groups.settings

我不确定这里出了什么问题,剩下的所有 API 都可以正常工作,我从 API Explorer 中尝试过同样的操作,并且也可以正常工作。

//Connect Google Snippet

public static DirectoryService fnConnectGoogle()
{
            Console.WriteLine("Connect to Google API");
            Console.WriteLine("=====================");

            String serviceAccountEmail = "xyz@developer.gserviceaccount.com";
            var certificate = new X509Certificate2(@"D:\CECV\Google\GoogleAppsProvisioning.p12", "notasecret", X509KeyStorageFlags.Exportable);

            ServiceAccountCredential credential = new ServiceAccountCredential(
            new ServiceAccountCredential.Initializer(serviceAccountEmail)
            {
                User = "test@mydomain.com",
                Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser, DirectoryService.Scope.AdminDirectoryGroup,
                    GroupssettingsService.Scope.AppsGroupsSettings}
            }.FromCertificate(certificate));


            var dirservice = new DirectoryService(new BaseClientService.Initializer()
            {enter code here
                HttpClientInitializer = credential,
                ApplicationName = "GoogleAppsProvisioning"
            });
            return dirservice;
}

//Update Group Settings


public static void fnUpdateGroupSetting(DirectoryService dirService)
{
            GroupssettingsService groupSetting = new GroupssettingsService();
            //   Groups group = new Groups();
            Google.Apis.Groupssettings.v1.Data.Groups group = new Google.Apis.Groupssettings.v1.Data.Groups();

             group.AllowWebPosting = "true";
            var g = groupSetting.Groups.Update(group, "testgroupprovisioning-code-1@vic.catholic.edu.au").Execute();
            Console.WriteLine("Group Settings updated successfully"+g.AllowWebPosting );
}
4

1 回答 1

0

您是否使用test@mydomain.com登录以激活它?我遇到了同样的问题,直到我意识到服务帐户正在尝试充当用户,如果未激活用户,它可能无法正常工作。不过,GroupSettings 以外的 API 似乎没有问题。

于 2015-07-20T15:03:45.183 回答