I use the following code in a java web application to try to get all users of a group:
GoogleCredential credential = GoogleCredential.fromStream(Util.class.getResourceAsStream("[credential_file].json")).createScoped(SCOPES);
Directory directory = new Directory.Builder(httpTransport, JSON_FACTORY, credential).build();
Directory.Members dirMem = directory.members();
Members members = dirMem.list("[group_email]").execute();
This results in an exception 403 (Not authorized to access this resource/API) on the last line (dirMem.list
...).
From the documentation (https://developers.google.com/admin-sdk/directory/v1/guides/delegation) and other posts, I saw that the solution to this is to set a service account user with setServiceAccountUser()
.
However, this means that I have to use a p12 file instead of a json file (Google recommends using a json file when you create the key).
Is there any way to get around this issue while still using a json file (it also involves less code).
Thanks.