无法使用Google Classroom API和Google Apps脚本添加成绩

时间:2018-02-24 18:28:07

标签: google-apps-script google-classroom

我无法使用Google Classroom API更改成绩。当我运行下面的代码时,第2行和第3行运行正常。但是,第4行失败并显示以下消息:@ProjectPermissionDenied不允许Developer Console项目发出此请求。

1)  var studentSubmission = {'assignedGrade':'1'};
2)  var studentSubmissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId, {userId:'studentEmail@apps.matsuk12.us'});
3)  var studentAssignmentId = studentSubmissions['studentSubmissions'][0].id;
4)  Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, courseWorkId, studentAssignmentId,{'updateMask':'assignedGrade'});

当我转到Project Properties并查看范围时,我看到的是:

https://www.googleapis.com/auth/classroom.courses
https://www.googleapis.com/auth/classroom.coursework.students
https://www.googleapis.com/auth/classroom.profile.emails
https://www.googleapis.com/auth/classroom.profile.photos
https://www.googleapis.com/auth/classroom.rosters
https://www.googleapis.com/auth/spreadsheets

我正在尝试使用容器绑定脚本(电子表格)访问自己的Google课堂。好像我可以访问作业,我应该有权添加成绩。不知道为什么我不能添加成绩。有什么办法可以让这段代码运行起来吗?最终目标是能够使用表单(而不是谷歌表单)对作业进行评分,并将分数自动推送到Google课堂。

我看到一篇提到解决方案的相关帖子,但目前尚不清楚如何实施它:Permission denied using Classroom.Courses.CourseWork.StudentSubmissions.list(4140802199, 4801051201);

我还在这里看到一个相关的错误报告:https://issuetracker.google.com/issues/67748271(我不确定这是否真的是一个错误,或者这只是Google Classroom API的工作方式,或者我刚刚做的出错了)

1 个答案:

答案 0 :(得分:0)

在您关联的帖子中,有人发布了此代码:

function createCoursework (id) {
 Classroom.Courses.CourseWork
  .create(id, { 
// doesn't work but triggers permissions correctly "courseId": id, "title": 'foo', "description": 'desc', }); 
}

基本上,您需要将此代码放在项目代码中的某个位置。然后,使用“运行”菜单执行该功能。它不会做任何事情,但会从谷歌初始化授权请求;通过弹出窗口。之后你应该删除该功能并使用该范围。