以下是使用服务帐户构建的凭据
GoogleCredential credential = new GoogleCredential.Builder()
.setJsonFactory(jsonFactory).setTransport(httpTransport)
.setServiceAccountId("xxxxxxx@developer.gserviceaccount.com")
.setServiceAccountPrivateKeyFromP12File(new File("key.p12"))
.setServiceAccountScopes(Collections.singleton(DirectoryScopes.ADMIN_DIRECTORY_USER))
.build();
我正在尝试的是获取用户,其中User是com.google.api.services.admin.directory.model.User
User u = null;
try {
u = service.users().get("test@gmail.com").execute();
} catch (Exception e) {
e.printStackTrace();
}
return u.toPrettyString();
}
响应返回代码404资源未找到?是否需要创建用户?如何访问任何Gmail用户?
答案 0 :(得分:2)
假设您已经授予了服务帐户domain-wide delegation,则需要使用.setServiceAccountUser("admin@domain.com")
冒充管理员帐户,如service account documentation所示。服务帐户本身不是域管理员,因此他们需要模拟一个帐户才能使用Admin SDK API。