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.g
Here's the solution by setting the admin email with a JSON file:
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.services.admin.directory.Directory;
import com.google.api.services.admin.directory.DirectoryScopes;
import static com.google.api.client.googleapis.util.Utils.getDefaultJsonFactory;
import static com.google.api.client.googleapis.util.Utils.getDefaultTransport;
// ...
String ADMIN_EMAIL = "admin@company.com";
String jsonConfigFile = "/GSuite Integration.json";
List scopes = Arrays.asList(DirectoryScopes.ADMIN_DIRECTORY_USER, DirectoryScopes.ADMIN_DIRECTORY_USERSCHEMA_READONLY);
GoogleCredential credential;
try (InputStream is = CredentialsWorkaroundTest.class.getResourceAsStream(jsonConfigFile)) {
credential = GoogleCredential.fromStream(is)
.createDelegated(ADMIN_EMAIL)
.createScoped(scopes);
}
Directory service = new Directory.Builder(getDefaultTransport(), getDefaultJsonFactory(), credential)
.setApplicationName(APPLICATION_NAME)
.build();
(Domain-wide delegation is not required)
Note - using google-api-client version 1.28.0