获取 google 课堂作业的学生提交 ID
Get the student´s submission id of a google classroom assignment
我想 return 在 Google Classrom 中使用
作业
service().courseWork().studentSubmissions().return_(courseId=PASS_HERE_THE_COURSEID, courseWorkId=PASS_HERE_THE_COURSEWORDID, id=PASS_HERE_THE_SUBMISSION_ID)
我有 courseId 和 courseWorkId,但不知道如何获取每个学生的 id=PASS_HERE_THE_SUBMISSION_ID。
希望有人能帮助我。
您可以在请求中使用 courses.courseWork.studentSubmissions.list to get a list of student submissions. You just need to provide the courseId
and courseWorkId
as a path parameter. You may also include additional query parameters。
例如,您希望将 returned 学生作品限制为具有指定标识符的学生所拥有的作品。您需要将特定标识符设置为 userId
作为 query parameters
的一部分
Note: You may also loop all the list of student submission to process each submission before returing it using courses.courseWork.studentSubmissions.return
- 用户的数字标识符
- 用户的电子邮件地址
- 字符串文字“我”,表示请求用户
示例响应正文 (JSON):
{
"studentSubmissions": [
{
object (StudentSubmission)
}
],
"nextPageToken": string
}
StudentSubmission 包含与学生提交课程作业相关的所有信息,包括 courseId
、courseWorkId
、id
和 userId
。
StudentSubmission 资源 (JSON):
{
"courseId": string,
"courseWorkId": string,
"id": string,
"userId": string,
"creationTime": string,
"updateTime": string,
"state": enum (SubmissionState),
"late": boolean,
"draftGrade": number,
"assignedGrade": number,
"alternateLink": string,
"courseWorkType": enum (CourseWorkType),
"associatedWithDeveloper": boolean,
"submissionHistory": [
{
object (SubmissionHistory)
}
],
// Union field content can be only one of the following:
"assignmentSubmission": {
object (AssignmentSubmission)
},
"shortAnswerSubmission": {
object (ShortAnswerSubmission)
},
"multipleChoiceSubmission": {
object (MultipleChoiceSubmission)
}
// End of list of possible types for union field content.
}
(更新)
关于您在 Apps 脚本中使用 courses.courseWork.studentSubmissions.return 时遇到的错误,
GoogleJsonResponseException: API call to classroom.courses.courseWork.studentSubmissions.return failed with error: @ProjectPermissionDenied The Developer Console project is not permitted to make this request.
发生这种情况是因为您正在尝试修改不是在 Developer Console 项目上创建的课程作业。请参考here.
示例代码:
var courseId = '2491255xxxxxx';
var courseWorkId = '2524434xxxxx'; // manually created in classroom.google.com
//1st TRY with error
var studentSubmissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId);
Logger.log(studentSubmissions.studentSubmissions[0].id);
//var ret = Classroom.Courses.CourseWork.StudentSubmissions.return({},courseId, courseWorkId, studentSubmissions.studentSubmissions[0].id);
//Logger.log(ret);
var assignment = {
title: "Test Assignment 3",
state: "DRAFT",
assigneeMode: "ALL_STUDENTS",
workType: "ASSIGNMENT"
};
//var newCourseWork = Classroom.Courses.CourseWork.create(assignment, courseId);
//2nd TRY without error
var newCourseWorkId = '2618921xxxxx';
var studentSubmissions2 = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, newCourseWorkId);
var ret = Classroom.Courses.CourseWork.StudentSubmissions.return({},courseId, newCourseWorkId, studentSubmissions2.studentSubmissions[0].id);
Logger.log(studentSubmissions2);
Logger.log(ret);
Logger.log(Classroom.Courses.CourseWork.get(courseId,newCourseWorkId));
解释:
在第一次尝试中,我尝试 return 学生提交在 https://classroom.google.com/ 中创建的课程作业。这种情况会遇到错误,因为我正在尝试修改与开发人员控制台项目无关的课程作业。您可以使用 Classroom.Courses.CourseWork.get()
、associatedWithDeveloper
属性 来检查课程作业是否有关联的开发者控制台项目 should be true.
第二次尝试,我先创建了课程作业草稿,然后在https://classroom.google.com/中修改创建的课程作业。一旦我完成了更改并发布了课程作业。我尝试 return 学生提交课程作业并成功(return 应该是 null/empty)。它成功的原因是因为开发者控制台项目与课程作业相关联,因为我使用 Apps 脚本创建课程作业,因此我也可以使用 Apps 脚本修改学生提交。
我想 return 在 Google Classrom 中使用
作业service().courseWork().studentSubmissions().return_(courseId=PASS_HERE_THE_COURSEID, courseWorkId=PASS_HERE_THE_COURSEWORDID, id=PASS_HERE_THE_SUBMISSION_ID)
我有 courseId 和 courseWorkId,但不知道如何获取每个学生的 id=PASS_HERE_THE_SUBMISSION_ID。
希望有人能帮助我。
您可以在请求中使用 courses.courseWork.studentSubmissions.list to get a list of student submissions. You just need to provide the courseId
and courseWorkId
as a path parameter. You may also include additional query parameters。
例如,您希望将 returned 学生作品限制为具有指定标识符的学生所拥有的作品。您需要将特定标识符设置为 userId
作为 query parameters
Note: You may also loop all the list of student submission to process each submission before returing it using courses.courseWork.studentSubmissions.return
- 用户的数字标识符
- 用户的电子邮件地址
- 字符串文字“我”,表示请求用户
示例响应正文 (JSON):
{
"studentSubmissions": [
{
object (StudentSubmission)
}
],
"nextPageToken": string
}
StudentSubmission 包含与学生提交课程作业相关的所有信息,包括 courseId
、courseWorkId
、id
和 userId
。
StudentSubmission 资源 (JSON):
{
"courseId": string,
"courseWorkId": string,
"id": string,
"userId": string,
"creationTime": string,
"updateTime": string,
"state": enum (SubmissionState),
"late": boolean,
"draftGrade": number,
"assignedGrade": number,
"alternateLink": string,
"courseWorkType": enum (CourseWorkType),
"associatedWithDeveloper": boolean,
"submissionHistory": [
{
object (SubmissionHistory)
}
],
// Union field content can be only one of the following:
"assignmentSubmission": {
object (AssignmentSubmission)
},
"shortAnswerSubmission": {
object (ShortAnswerSubmission)
},
"multipleChoiceSubmission": {
object (MultipleChoiceSubmission)
}
// End of list of possible types for union field content.
}
(更新)
关于您在 Apps 脚本中使用 courses.courseWork.studentSubmissions.return 时遇到的错误,
GoogleJsonResponseException: API call to classroom.courses.courseWork.studentSubmissions.return failed with error: @ProjectPermissionDenied The Developer Console project is not permitted to make this request.
发生这种情况是因为您正在尝试修改不是在 Developer Console 项目上创建的课程作业。请参考here.
示例代码:
var courseId = '2491255xxxxxx';
var courseWorkId = '2524434xxxxx'; // manually created in classroom.google.com
//1st TRY with error
var studentSubmissions = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, courseWorkId);
Logger.log(studentSubmissions.studentSubmissions[0].id);
//var ret = Classroom.Courses.CourseWork.StudentSubmissions.return({},courseId, courseWorkId, studentSubmissions.studentSubmissions[0].id);
//Logger.log(ret);
var assignment = {
title: "Test Assignment 3",
state: "DRAFT",
assigneeMode: "ALL_STUDENTS",
workType: "ASSIGNMENT"
};
//var newCourseWork = Classroom.Courses.CourseWork.create(assignment, courseId);
//2nd TRY without error
var newCourseWorkId = '2618921xxxxx';
var studentSubmissions2 = Classroom.Courses.CourseWork.StudentSubmissions.list(courseId, newCourseWorkId);
var ret = Classroom.Courses.CourseWork.StudentSubmissions.return({},courseId, newCourseWorkId, studentSubmissions2.studentSubmissions[0].id);
Logger.log(studentSubmissions2);
Logger.log(ret);
Logger.log(Classroom.Courses.CourseWork.get(courseId,newCourseWorkId));
解释:
在第一次尝试中,我尝试 return 学生提交在 https://classroom.google.com/ 中创建的课程作业。这种情况会遇到错误,因为我正在尝试修改与开发人员控制台项目无关的课程作业。您可以使用
Classroom.Courses.CourseWork.get()
、associatedWithDeveloper
属性 来检查课程作业是否有关联的开发者控制台项目 should be true.第二次尝试,我先创建了课程作业草稿,然后在https://classroom.google.com/中修改创建的课程作业。一旦我完成了更改并发布了课程作业。我尝试 return 学生提交课程作业并成功(return 应该是 null/empty)。它成功的原因是因为开发者控制台项目与课程作业相关联,因为我使用 Apps 脚本创建课程作业,因此我也可以使用 Apps 脚本修改学生提交。