с помощью API Google Classroom я могу отправить тест (10 вопросов) учащемуся как прикрепленную ссылку в задании из учительского аккаунта.
ученик откроет ссылку, чтобы выполнить тест, после того, как учащийся завершил sh тест, который система рассчитает для оценки, например, 8 из 10 верны, поэтому оценка равна 8 и будет использоваться в качестве назначенной оценки.
Каков правильный поток / способ использования API класса Google для автоматического обновления назначенного класса для представления учащегося в классе Google без учителя вручную оценивает поступление ученика.
var courseId = '<the-courseid-is-read-from-database>';
var courseWorkId = '<the-course-work-id-is-read-from-database>';
var studentSubmissionsId = '';
function handleClientLoad() {
gapi.load('client:auth2', initClient);
}
function initClient() {
gapi.client.init({
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: DISCOVERY_DOCS,
scope: SCOPES
}).then(function () {
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
}, function(error) {
alert(JSON.stringify(error, null, 2));
});
}
function updateSigninStatus(isSignedIn) {
if (isSignedIn) {
LoadStudentSubmission();
} else {
gapi.auth2.getAuthInstance().signIn();
}
}
//---------------------------------------------------------------
// this part help get the studentSubmissionId
//---------------------------------------------------------------
gapi.client.classroom.courses.courseWork.studentSubmissions.list({
courseId: courseId,
courseWorkId: courseWorkId
}).then(function(response) {
var studentSubmissions = response.result.studentSubmissions;
if (studentSubmissions.length > 0) {
for (i = 0; i < studentSubmissions.length; i++) {
var studentSubmission = studentSubmissions[i];
studentSubmissionsId = studentSubmission.id;
}
} else {
alert("Not allow");
}
});
//---------------------------------------------------------------
///this part is call after the student have finish the test
//---------------------------------------------------------------
var studentSubmission = {
courseId: courseId,
courseWorkId: courseWorkId,
id: studentSubmissionsId,
updateMask: 'assignedGrade,draftGrade',
assignedGrade: 8,
draftGrade: 8,
assignmentSubmission: {
"attachments": [
{'link': { 'url': 'http://localhost/quiz?code=xxxxx-xxxxxx-xxxxx-xxxx' }}
]
}
};
gapi.client.classroom.courses.courseWork.studentSubmissions.patch(
studentSubmission
).then(function(response) {
alert('Submited');
});
//---------------------------------------------------------------
///this is what return
//---------------------------------------------------------------
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}