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)
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));