我正在使用Google Classroom API将我的业务系统集成到Google Classroom中。我可以使用服务帐户创建和列出课程。但始终使用OwnerId =“ me”。我正在创建的所有课程都带有服务帐户的client_id。如果我尝试使用其他ownerID创建,则会出现错误:
代码:403消息:呼叫者没有权限域:全球原因:禁止状态:PERMISSION_DENIED
有关解决此问题的任何技巧?
谢谢。
[在创建ClassRoom的实例之前,您必须使用电子邮件来模拟用户,同时创建凭据
.setServiceAccountUser("UserEmail")
下面附有示例代码
final NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("class-room-service-account-id")
.setServiceAccountPrivateKeyFromP12File(new File("/Credentials/MyProject.p12"))
.setServiceAccountScopes(SCOPES)
.setServiceAccountUser("UserEmail") //There should be the Email for the user you are creating course
.build();
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
ClassRoom service = new Classroom.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();
此后使用OwnerId“ me”将为模拟的用户创建课程。