【问题标题】:Google Java API to list users in a companyGoogle Java API 列出公司中的用户
【发布时间】:2016-06-01 06:52:14
【问题描述】:

我正在尝试使用 Java SDK 列出公司中的用户。我正在尝试的代码是:

try {
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
credential = new GoogleCredential.Builder()
                .setTransport(httpTransport)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId("xxx@developer.gserviceaccount.com")
                .setServiceAccountScopes(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER))
                .setServiceAccountUser("adminuser@myTestDomain.com")
                .build();


Directory directory = new Directory.Builder(httpTransport, JSON_FACTORY, credential)
            .setApplicationName("My App Name")
            .build();

Users result = null;
result = directory.users().list().setDomain("myTestDomain.com").execute();
} 

我有一个私钥字符串,如下所示:

key = new String("-----BEGIN RSA PRIVATE KEY-----\n"
+"blah1\n"
+"blah2\n"
+"-----END PRIVATE KEY-----");

现在我如何使用上述“密钥”字符串作为 PrivateKey 来构建 Google 凭据,并能够列出用户。我已经尝试过,将字符串读取为字节数组,从文件中读取等,但所有这些都因一个错误或另一个错误而失败。

我只需要获取域 myTestDomain.com 中 adminuser@myTestDomain.com 是管理员的用户列表。顺便说一句,我可以使用以下 Go 代码成功获得相同的结果。我只在 Java 代码上苦苦挣扎。任何指针?谢谢。

转码:

    conf := &jwt.Config{
        Email: "xxx@developer.gserviceaccount.com",
        PrivateKey: []byte(`-----BEGIN RSA PRIVATE KEY-----
blah1
blah2
-----END PRIVATE KEY-----`),
        Scopes:   []string{admin.AdminDirectoryUserScope},
        TokenURL: google.JWTTokenURL,
        Subject: "adminuser@myTestDomain.com",
    }

    client := conf.Client(oauth2.NoContext)
    srv, _ := admin.New(client)
    u, _ := srv.Users.List().Domain("myTestDomain.com").Do()
    fmt.Println(u.Users)

【问题讨论】:

    标签: java oauth google-api google-oauth google-api-java-client


    【解决方案1】:

    您可以直接读取从Google Developers Console 下载的 JSON 服务帐户密钥:

    InputStream is = new FileInputStream(new File("myFile.json"));
    credential = GoogleCredential.fromStream(is, httpTransport, JSON_FACTORY)
        .createScoped(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多