[この例] https://developers.google.com/admin-sdk/directory/v1/quickstart/quickstart-javaを見ています)。
しかし、そのURLのコピー/貼り付けバージョンを認証に使用したくないので、サービスアカウントを使用する必要があることを読みました.
p12 キーをダウンロードして、ソース フォルダーに配置しました。そして、stackoverflowで見つけたコードを使用して、Google の例を再構築しています。
だからここに私が得る方法は次のとおりです:
public class DirectoryCommandLine {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
// Build service account credential.
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("......82p@developer.gserviceaccount.com")
.setServiceAccountScopes(DirectoryScopes.all())
.setServiceAccountPrivateKeyFromP12File(new java.io.File("eclipsejava-d6675et3ab71.p12"))
.build();
// Create a new authorized API client
Directory service = new Directory.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("DirectoryCommandLine")
.build();
List<User> allUsers = new ArrayList<User>();
Directory.Users.List request = service.users().list().setCustomer("my_customer");
// Get all users
do {
try {
Users currentPage = request.execute();
allUsers.addAll(currentPage.getUsers());
request.setPageToken(currentPage.getNextPageToken());
} catch (IOException e) {
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
} while (request.getPageToken() != null &&
request.getPageToken().length() > 0 );
// Print all users
for (User currentUser : allUsers) {
System.out.println(currentUser.getPrimaryEmail());
}
}
}
これを実行すると、次のエラーが発生します。
Error: Main method not found in class DirectoryCommandLine, please define the main method as:
public static void main(String[] args)
追加する必要があると思います
public static void main(String[] args) throws IOException {
前/前:
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
しかし、それはすべて混乱します: