我正在以编程方式提交 Google 类作业,当我使用 STUDENT_COPY shareMode 附加 Material 时,我看到了与使用 VIEW shareMode 时不同的行为。
下面的代码似乎工作正常:
var resource = {
title: name,
description: explanation,
workType: 'ASSIGNMENT',
state: 'PUBLISHED'
};
resource.materials = [];
resource.materials.push({
driveFile: {
driveFile: {
id: 'fileId'
},
shareMode: 'VIEW'
}
});
var params = {auth: creds, courseId: courseId, resource: resource};
classroom.courses.courseWork.create(params, function (err, courseWorkResponse) {
/* handle response */
}
使用该代码,作业已创建,我可以在 Google 类中看到它。但是,如果我将 shareMode 设置为 STUDENT_COPY 而不是 VIEW,则会出现以下错误:
{ Error: Requested entity was not found.
at Request._callback (/Users/.../node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
at Request.self.callback (/Users/.../node_modules/googleapis/node_modules/request/request.js:188:22)
at emitTwo (events.js:106:13)
at Request.emit (events.js:191:7)
at Request.<anonymous> (/Users.../node_modules/googleapis/node_modules/request/request.js:1171:10)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at IncomingMessage.<anonymous> (/Users/.../node_modules/googleapis/node_modules/request/request.js:1091:12)
at IncomingMessage.g (events.js:292:16)
at emitNone (events.js:91:20)
code: 404,
errors:
[ { message: 'Requested entity was not found.',
domain: 'global',
reason: 'notFound' } ] }
作业不是在 Google Classrom 中创建的。但是,我看到我在 driveFile.id 中指定的 Google 文档的 [Template] 副本被放置到我的 Google 云端硬盘中。
我已经用几个不同的文档尝试过这个,其中一些基本上是“Hello World”级别的谷歌文档,所以我怀疑这个问题与文档有关。
除此之外,我不确定会发生什么。我假设某处一定存在某种权限问题,但其他人是否知道可能发生了什么?
编辑:更多信息
这似乎是“发布”作业的问题。如果我将 resource.state
设置为 DRAFT
,我就能成功执行 coursework.create
API 调用。我按预期取回了 CourseWork 对象的实例。
问题是我需要最终发布作业。当我尝试执行 classroom.courses.courseWork.patch()
api 调用以简单地将状态从 DRAFT 更改为 PUBLISHED 时,我最终得到相同的 Requested entity was not found
错误。
不过,我可以进入 Google 类本身,查看我的草稿,然后点击应用程序中的分配按钮。如果我这样做,一切终于奏效了!不过,该 UI 流程对我不利。但它确实表明,据我所知,这项作业本身并没有错。我似乎只是缺少一些(未记录?)对我而言必要的步骤。
最佳答案
发生这种情况是因为实体尚不存在,因为学生尚未在类里面访问作业。因此,请确保他们这样做并重试。
Drive files that correspond to materials with a share mode of STUDENT_COPY may not exist yet if the student has not accessed the assignment in Classroom.
关于google-classroom - 使用 STUDENT_COPY Material 创建作业时在 Google 类中找不到实体错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450153/