Java 谷歌目录API提供401和服务帐户,仅用于管理目录

Java 谷歌目录API提供401和服务帐户,仅用于管理目录,java,oauth,Java,Oauth,我试图在Java/Spring项目中使用一些关于我们的G套件业务帐户成员的数据。我使用适当的“目录”API为服务帐户设置了域范围的委托,获取用户数据就像charm一样有效——但在请求orgUnits数据时,我总是会收到“401 Unauthorized”错误 无论我是否使用“readonly”,它也适用于“DirectoryScopes.ADMIN\u DIRECTORY\u GROUP” 私有目录getDirectoryService(字符串类型){ //ommit一些变量。。。 Google

我试图在Java/Spring项目中使用一些关于我们的G套件业务帐户成员的数据。我使用适当的“目录”API为服务帐户设置了域范围的委托,获取用户数据就像charm一样有效——但在请求orgUnits数据时,我总是会收到“401 Unauthorized”错误

无论我是否使用“readonly”,它也适用于“DirectoryScopes.ADMIN\u DIRECTORY\u GROUP”

私有目录getDirectoryService(字符串类型){ //ommit一些变量。。。 GoogleCredential credential=新建GoogleCredential.Builder().setTransport(httpTransport) .setJsonFactory(jsonFactory) .setServiceAccountId(服务帐户ID) .setServiceAccountUser(服务\帐户\用户) .setServiceAccountScopes(范围) .setServiceAccountPrivateKeyFromp12文件(新的java.io.File(凭证文件路径)) .build(); 返回新目录.Builder(httpTransport、jsonFactory、凭证) .setApplicationName(应用程序名称) .setHttpRequestInitializer(凭证) .build(); } //工作 Users Users=getDirectoryService(DirectoryScopes.ADMIN\u DIRECTORY\u USER).Users() .list() .setCustomer(客户ID) .execute(); //401 OrgUnits=getDirectoryService(DirectoryScopes.ADMIN\u DIRECTORY\u ORGUNIT).OrgUnits() .list(“”) .setCustomerId(客户ID) .execute(); 第一次调用有效,但第二次调用出现错误:
com.google.api.client.auth.oauth2.TokenResponseException:401 Unauthorized

我在尝试将Admin SDK google api与服务帐户一起使用时遇到了相同的问题


问题发生在我身上,因为在我的代码中设置的作用域与在我的Google管理控制台“安全>高级设置>管理API客户端访问”下设置的作用域不匹配。一旦这些都对齐了,它就开始完美地工作。

我在尝试将Admin SDK Google API与服务帐户一起使用时遇到了同样的问题


问题发生在我身上,因为在我的代码中设置的作用域与在我的Google管理控制台“安全>高级设置>管理API客户端访问”下设置的作用域不匹配。一旦这些都对齐,它就开始完美工作。

好吧,你说得对!也许我在尝试了几次这个问题后有点累了,不小心错过了“”这个词。嗯,你说得对!也许我在尝试了几次这个问题之后有点累了,并且意外地错过了“”。