2

J'essaie de répertorier les utilisateurs d'une entreprise à l'aide du Java SDK. Le code que je suis en train est:API Google Java pour lister les utilisateurs d'une entreprise

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 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 ce qui précède la chaîne « clé » comme le PrivateKey et être capable de lister les utilisateurs. J'ai essayé, en lisant la chaîne sous la forme d'un tableau d'octets, la lisant à 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 capable de réussir la même chose avec le code Go suivant btw. Je me bats avec seulement le code Java. Des pointeurs? Merci.

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) 

Répondre

0

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

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