Google Admin SDK API を使用して、スタンドアロン C# コードを使用して Google でユーザー/グループをプロビジョニングしています。ユーザーの作成、ユーザーの更新、グループの作成、メンバーの追加、メンバーの取得、ユーザーの検索などを含むすべての操作は完全に正常に機能しています。グループ設定 API を呼び出して、いくつかのグループ設定を更新しますが、
ログインが必要な例外 (401)。
サービス アカウント スコープにグループ設定を追加し、Google 管理コンソールのセキュリティ設定に同じグループ設定を追加し、開発者コンソール スコープでグループ設定を有効にしました: GroupssettingsService.Scope.AppsGroupsSettings 管理コンソールのセキュリティ設定: https://www.googleapis.com /auth/apps.groups.settings
ここで何が問題なのかわかりません。残りのすべての API は正常に動作しており、API エクスプローラーから同じことを試してみましたが、これも正常に動作しています。
//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 );
}