2

私たちは Google の企業アカウントを持っており、すでに Groups Provisioning API を使用してドメイン内のグループを管理しています。ここで、「グループ設定 API」を使用してグループ設定を微調整する必要があります。私たちの Java コードは、グループを管理するため、すべてのグループ プロビジョニング API のドメインで特別な管理者として機能します。

a) https://developers.google.com/google-apps/groups-settings/authを読んでいます

b) 「アプリケーションに特定の異常な認証要件がある場合、....またはドメイン全体の権限委任 (2LO) がある場合、現在 OAuth 2.0 トークンを使用できません。そのような場合、代わりに OAuth 1.0 トークンと API を使用する必要があります。鍵。"

c) https://developers.google.com/console/help/#generatingdevkeysを読み、このアプリの新しいサーバー キーを生成しました

d) さて何?google-api-services-groupssettings API の v1-rev25-1.14.2-beta バージョンと「google-api-client」バージョン 1.14.1-beta でこれを使用するにはどうすればよいですか? 例で見られる唯一のオプション (これは oauth 2.0 のみを対象としています) は、oauth 2.0 のみを中心としたこの GoogleCredential オブジェクトを使用するものであり、上記の (a) によれば、使用できません。

e) このライブラリで API キーを使用する際の例や役立つ情報がないため、oauth 2.0 と特別なサービス アカウント clientEmail および privatekey の 1 つを介して Groupsettings オブジェクトを作成する例を使用して、それを試してみることにしました。グループが「ユーザーデータ」ではないことを考えると、いくつかの点でこれが機能しない理由がわかりませんが、接続しているこの管理者 API アカウントで管理できるはずです。

HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();

GoogleCredential credential = new GoogleCredential.Builder()
  .setTransport(httpTransport)
  .setJsonFactory(jsonFactory)
  .setServiceAccountId("ourspecial_client_email@from.api.console")
  .setServiceAccountScopes(GroupssettingsScopes.APPS_GROUPS_SETTINGS)
  .setServiceAccountUser("my.special.admin.user@ourdomain.com")
  .setServiceAccountPrivateKeyFromP12File(
      new java.io.File("/path/to/privatekey"))
  .build();

Groupssettings service = new Groupssettings.Builder(httpTransport, jsonFactory, null)
  .setApplicationName("my API Integration")
  .setHttpRequestInitializer(credential).build();

Groups groups= service.groups().get("someexistingtestgroup@mydomain.com").execute();

Groups group = new Groups();
group.setWhoCanJoin("ALL_IN_DOMAIN_CAN_JOIN");
service.groups().patch("someexistingtestgroup@mydomain.com", group).execute();

上記のコードを実行すると (patch() 呼び出し)、次のエラーが返されます: ("update()" も試しましたが、同じ結果でした。このメッセージはどういう意味ですか?? これは auth に関連していますか? それとも無効な呼び出しですか?アップデート/パッチで?

{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Permission denied: Cannot hide from Groups directory.",
"reason" : "invalid"
} ],

また、 「ヘルプ」ページには、「Google エンジニアがタグ google-groups-settings を監視して回答する」と記載されています。助けを求めてここに投稿すると、stackoverflow を使用するには XXXXX ポイントが必要になります。よかった、誰もこれを見ないだろう。

4

1 に答える 1

3
  • Google によって廃止されたため、Two Legged OAuth 1.0 認証の使用はお勧めしません。

  • Groups Settings API で OAuth 2.0 サービス アカウントを使用できます。ドライブ SDK ドメイン全体のガイドの指示に従って、必要に応じてグループ設定を置き換えてください。ただし、これを行う理由はほとんどありません。アプリは、Groups Settings API にアクセスするために偽装するサービス アカウントの Google Apps スーパー管理者のアドレスを知る必要があるためです。

  • Groups Settings API にアクセスする最良の方法は、おそらく標準の OAuth 2.0 認証です。スーパー管理者アクセス権を持つが、グループ設定 API のみのスコープを持つユーザー アカウントとして認証できます。OAuth 認証のオフライン アクセスを要求した場合、トークンが取り消されておらず、ユーザー アカウントが特権管理者として存在する限り、グループ設定 API 呼び出しを実行できます。

  • 発生している特定のエラーは、Google Apps ドメインのコントロール パネル設定で、[設定] -> [ビジネス向けグループ] -> [共有オプション] -> [グループの表示] で、[グループ所有者はグループ ディレクトリからグループを非表示にできる] がチェックされていないことを意味します。これにより、グループが非表示になるのを防ぎます。

于 2013-05-08T18:06:48.657 に答える