API Google Java pour lister les utilisateurs d'une entreprise


J'essaie de lister les utilisateurs d'une entreprise en utilisant le SDK Java. Le code que j'essaie est:

try {
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
credential = new GoogleCredential.Builder()
                .setTransport(httpTransport)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId("[email protected]")
                .setServiceAccountScopes(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER))
                .setServiceAccountUser("[email protected]")
                .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();
} 

J'ai une chaîne de clé privée qui a comme:

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

Maintenant, comment puis-je obtenir les informations d'identification Google à construire avec la chaîne " clé " ci-dessus comme PrivateKey et pouvoir lister les utilisateurs. J'ai essayé de lire la chaîne sous forme de tableau d'octets, de la lire à partir d'un fichier, etc. mais tous ceux-ci ont échoué avec une erreur ou l'autre.

J'ai juste besoin d'obtenir la liste des utilisateurs dans le domaine myTestDomain.com pour lequel [email protected] est l'administrateur. Je suis en mesure d'obtenir avec succès la même chose avec le code Go suivant btw. Je me bats avec seulement le code Java. Les pointeurs ? Grâce.

Code go:

    conf := &jwt.Config{
        Email: "[email protected]",
        PrivateKey: []byte(`-----BEGIN RSA PRIVATE KEY-----
blah1
blah2
-----END PRIVATE KEY-----`),
        Scopes:   []string{admin.AdminDirectoryUserScope},
        TokenURL: google.JWTTokenURL,
        Subject: "[email protected]",
    }

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

1 answers

Vous pouvez lire dans la clé de compte de service JSON que vous téléchargez depuis Google Developers Console directement:

InputStream is = new FileInputStream(new File("myFile.json"));
credential = GoogleCredential.fromStream(is, httpTransport, JSON_FACTORY)
    .createScoped(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER));
 0
Author: Patrick, 2016-03-03 03:50:40