首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google组设置API的域范围委托身份验证?

google组设置API的域范围委托身份验证?
EN

Stack Overflow用户
提问于 2013-05-08 17:38:00
回答 1查看 1.2K关注 0票数 2

我们有一个google公司帐户,并且已经在使用来管理我们域中的组。我们现在需要通过“组设置api”来调整组设置。在管理组时,我们的java代码在我们的域中充当所有的特殊管理用户。

( 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)现在怎么办?我如何使用这个版本的v1-rev25-1.14.2-测试版的google服务-组设置API和“google客户端”版本1.14.1-beta?我在任何示例中看到的唯一选项(只适用于OAuth2.0)是使用这个GoogleCredential对象,它仅以OAuth2.0为中心,根据上面的(a),我们不能使用该对象。

( e)没有给出在这个库中使用API密钥的示例或有用的信息,我决定尝试使用一个示例来通过OAuth2.0和我们的一个特殊服务帐户clientEmail和privatekey创建Groupsettings。在某些方面,我不知道为什么这不能工作,因为组不是“用户数据”,但似乎他们应该能够管理这个管理api帐户,我正在连接。

代码语言:javascript
复制
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();

当上面的代码执行时,(修补程序()调用)我得到了这个错误:(我还尝试了相同的结果"update()“。这个信息是什么意思??这和奥斯丁有关吗?还是更新/修补程序中的某个无效调用?

代码语言:javascript
复制
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Permission denied: Cannot hide from Groups directory.",
"reason" : "invalid"
} ],

还请注意:您的“帮助”页面声明"Google工程师监视和回答标签google-groups设置“。在这里发布帮助时,但是堆栈溢出要求我们有XXXXX点才能使用它!太好了,所以没人会看到这个。

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 18:06:48

  • 我不建议使用两条腿的OAuth 1.0身份验证,因为它已经被谷歌所反对。
  • 您可以在组设置API中使用OAuth 2.0服务帐户。只需在必要时按照驱动器SDK域范围指南替换组设置中的说明操作即可。然而,没有什么理由这样做,因为您的应用程序仍然需要知道Google超级管理员的地址来模拟服务帐户,这样才能访问Groups。
  • 访问组设置API的最佳方法可能是标准的OAuth 2.0身份验证。您可以将具有超级管理权限的用户帐户授权为用户帐户,但其范围仅为Group。如果您请求离线访问您的OAuth身份验证,那么只要您的令牌未被撤销,并且用户帐户以超级管理员的身份存在,您就可以执行Group调用。
  • 您所得到的特定错误意味着,在Google域的“控制面板设置”中,在“设置->组用于业务->共享选项”->组可见性下,“组所有者可以从组目录中隐藏组”不被选中。这样可以防止任何组被隐藏。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16446883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档