首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在谷歌课堂API中发布带有学生副本的课程作业时出现内部错误,可能是bug?

在谷歌课堂API中发布带有学生副本的课程作业时出现内部错误,可能是bug?
EN

Stack Overflow用户
提问于 2019-11-05 16:29:45
回答 3查看 388关注 0票数 2

当我使用课堂API发布作业和学生副本时。我得到了API call to classroom.courses.courseWork failed with error: Internal error encountered

当我成功发布草稿,然后尝试使用API发布作业,或者尝试直接发布新作业时,就会出现这种情况。

将作业更改为“仅查看”解决了这两种情况下的发布问题,但之后您无法获得学生副本,并且在发布后无法再将其更改回来,并且几乎总是需要学生副本。

我可以在没有任何问题的情况下,在谷歌课堂上发布草稿后手动发布。我认为这与你在发布作业后不能制作学生副本的原因有关。

我在发布之前已经探测过了,学生文件夹id是可用的,但还没有创建。

代码语言:javascript
复制
var assignment =  {
  title: "Test File",    
  materials: [
    {
      driveFile:{
        driveFile: {
          id: "11klBA-80IQPaJHrpSyJHqVsK7BUWWAtoLFdwG0uJGfo", 
          title: "Sample Document"
        },
        shareMode: "STUDENT_COPY"
        }
    }
  ],
  state: "PUBLISH",
  workType: "ASSIGNMENT"
};

var id = Classroom.Courses.CourseWork.create(assignment, 24551294261)
Logger.log(id);

代码语言:javascript
复制
Classroom.Courses.CourseWork.patch( {"state": "PUBLISHED"},24551294261,46981225150,{updateMask:'state'});

API call to classroom.courses.courseWork.patch failed with error与任一程序代码一起返回。如果将Student_COPY更改为view,则代码可以正常工作。我认为这是一个bug,API没有一些手动点击发布所做的发布协议。所以它失败了。我的猜测是创建google文件夹来存储文档。

我教8个班级,手动发布每个作业需要很长时间,如果我犯了错误,学生可能会错过一个作业。

希望有变通的方法或修复错误的方法。我使用API发布,部分是为了节省评分时间,部分是为了保持所有8个班级相同。我可以更新到期日期或说明,而不会意外地遗漏任何人。我需要API来发布分配,这样它就可以访问分配以进行更改。

EN

回答 3

Stack Overflow用户

发布于 2020-02-20 02:06:14

我找到了一种解决方法。您不能使用API发布带有学生副本的作业。你可以在未来使用scheduledTime: 5分钟,系统会为你发布它。

你可以在5分钟内打补丁来打开它,而不是修补状态来发布现有的分配。我有点痛苦,但发布8个班级的3个作业花了我半个小时。5分钟的等待并不是一笔糟糕的交易。我还没有测试过你可以设置的时间与现在有多接近。我使用5分钟来允许任何延迟。

顺便说一下,补丁只适用于标题,描述,状态,dueDate,dueTime,maxPoints,scheduledTime,submissionModificationMode,topicId。材料不在列表中。您不能更改与工作分配关联的链接或文档。

票数 2
EN

Stack Overflow用户

发布于 2020-06-08 10:00:44

因为我没有足够的名誉点,特拉维斯是对的。

UTC祖鲁时间格式:"scheduledTime":"2020-06-08T01:34:55Z",

要打印时间戳,请使用下面的code...make确保在教室函数中调用下面的函数。

代码语言:javascript
复制
function schedulePost(){
var now = new Date();
var extra = now.getMinutes()+5;//change the numeric time for the spread
console.log(Utilities.formatDate(now, 'Etc/GMT', 'yyyy-MM-dd\'T\'HH:'+extra+':ss.SSS\'Z\''));
};
票数 0
EN

Stack Overflow用户

发布于 2020-07-17 11:30:48

如果我要将它安排在未来,那么我会在资源中包含:

代码语言:javascript
复制
resource = {
    ...
    state: "DRAFT";
    ...
    };

要立即发布它,只需将状态设置为已发布:

代码语言:javascript
复制
resource = {
    ...
    state: "PUBLISHED";
    ...
};

任务就会立即发布。无论哪种方式:

代码语言:javascript
复制
var creq = gapi.client.classroom.courses.courseWork.create({courseId: 
    smeCourseId,resource: resource});
creq.execute(function(courseWork) {
    if (courseWork.error) {
        window.alert(courseWork.error.message);
    }
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58707261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档