我有一个谷歌脚本,以获得在我们的教育领域的所有谷歌教室的列表,以及每个教室的所有作业(“课程作业”)。以Google域管理员的身份运行它,我可以获取教室列表,但尝试获取作业列表时会出现"caller I not have permission“错误。谷歌域名管理员没有权利获得分配列表吗?我需要在这里包含一些特殊的身份验证方法吗?
function listCourses() {
var optionalArgs = {
pageSize: 20
};
var response = Classroom.Courses.list(optionalArgs);
var courses = response.courses;
if (courses && courses.length > 0) {
for (i = 0; i < courses.length; i++) {
var course = courses[i];
Logger.log('%s , %s , %s , %s ', course.name, course.id, course.ownerId, course.creationTime);
var id = course.id;
// the error "caller does not have permission" occurs here:
var coursework = Classroom.Courses.CourseWork.list(id)
var arr=[];
if (coursework && coursework.length > 0) {
for (k = 0; k < coursework.length; k++) {
var cw = coursework[k];
var ids = cw.id;
var user = cw.creatorUserId;
var type = cw.workType;
var ti = cw.title;
var des = cw.description;
var st = cw.state;
var sch = cw.scheduledTime;
var due = cw.dueDate;
Logger.log('%s , (%s) , %s , %s', user, ti, des, due);
}
}
}
}
}发布于 2018-06-05 00:33:09
我目前正在写一个脚本,它需要做同样的事情,我遇到了这个问题。
在应用程序脚本编辑器菜单中,选择JSON视图->显示清单文件,它将在此文件中打开一个名为appsscript.json的文件,添加属性oauthScopes并将其设置为授权请求URL数组,如下所示:
"oauthScopes": ["https://www.googleapis.com/auth/classroom.coursework.students.readonly",
"https://www.googleapis.com/auth/classroom.courses.readonly"
]在此之后,我不得不将我的webapp重新发布为新版本,并单击接受新权限,但现在我可以获得特定学生的所有课程作业的列表。
资源:
https://developers.google.com/classroom/guides/auth https://developers.google.com/classroom/guides/manage-coursework
https://stackoverflow.com/questions/50025961
复制相似问题