使用STUDENT_COPY材料创建作业时,Google课堂中未找到实体错误

时间:2017-08-02 01:43:07

标签: google-classroom

我是以编程方式提交Google课堂作业,使用STUDENT_COPY shareMode附加材料时的行为与使用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中创建作业。但是,我 am 看到我在Google云端硬盘中放入的driveFile.id中指定的Google文档的[模板]副本。

我已经尝试了几个不同的文档,其中一些基本上是“Hello World”级别的Google文档,所以我怀疑这个问题与文档有关。

除此之外,我不确定会发生什么。我假设某处必须存在某种权限问题,但其他人是否知道可能会发生什么?

编辑:更多信息

这似乎是“发布”作业的问题。如果我将resource.state设置为DRAFT,我就能够成功执行coursework.create API调用。我按预期返回了一个CourseWork对象的实例。

问题是我需要最终发布作业。当我尝试执行classroom.courses.courseWork.patch() api调用以简单地将状态从DRAFT更改为PUBLISHED时,我最终得到相同的Requested entity was not found错误。

但是,我可以进入Google Classroom,查看我的草稿,然后单击应用程序中的ASSIGN按钮。如果我这样做,一切都终于有效了!但是UI流程对我来说并不好。但它确实表明,就我所知,任务本身没有任何错误。我似乎错过了一些(无证件的)步骤,这在我的案例中是必要的。

1 个答案:

答案 0 :(得分:0)

这是因为实体尚不存在,因为学生还没有在课堂上访问指派。因此,请确保他们这样做并重试。

Reference

  

与共享模式为的材料对应的驱动器文件   如果学生没有访问过,则STUDENT_COPY可能尚不存在   课堂作业。