2016-07-20 1 views
0

Der Versuch, den StudentSubmissions.Patch Teil der Klassenzimmer-API in Google Apps Script zu verwenden, und halten über diesen Fehler laufenStudentSubmissions.Patch UpdateMask Fehler

updateMask: updateMask enthält möglicherweise "draftGrade" nur oder "assignedGrade"

Hier ist mein Code für diesen bestimmten Abschnitt:

var studentSubmission = {'draft_grade':'88'} 
var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId); 

Es gibt eindeutig einige was falsch mit der Art, wie ich den StudentSubmission Ressourcenparameter bin vorbei, aber ich kann, warum ...

nicht herauszufinden Dies ist eindeutig die Dokumentation Ich beziehe mich - https://developers.google.com/classroom/reference/rest/v1/courses.courseWork.studentSubmissions/patch

UPDATE

Ich war in der Lage, den Code ein wenig zu ändern, um zu reflektieren, was Sie beide sagten. Offensichtlich habe ich nicht genau das verwendet, was Sie beide gesagt haben, denn KENdi's Beispiel ist in Python und Ein2012, es würde auf der var patchC = Classroom ... Zeile aus.

änderte ich einige Dinge, die wie folgt aussehen jetzt:

var studentSubmission = {'draftGrade':'88'} 
    var extra = {'updateMask':'draftGrade'}; 
    var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId, extra); 

Aber ich habe jetzt ein anderer Fehler „@ProjectPermissionDenied der Developer Console-Projekt ist nicht erlaubt diesen Antrag zu stellen“. Jetzt bin ich mir nicht sicher, ob diese Formatierung korrekt ist und es gibt eine Entwicklerkonsolensituation, die ich nicht gelöst habe (obwohl ich das Gefühl habe, dass ich richtig liege), oder dass die neue Formatierung falsch ist und ich nur die wilde Erlaubnis bekomme Error.

Ich sah dies Similar Error aber was ist, wenn die Kursarbeit normalerweise durch den Unterricht und nicht über ein Skript erstellt wurde? Ahh.

+0

Ich habe eine Anforderung für Änderung der Authentifizierung erstellt; Wir werden sehen, was passiert. https://issuetracker.google.com/issues/67748271 – user2970721

Antwort

1

Update Maskenfelder angeben und später ausführen und auch die Namen angeben, wie in der Dokumentation („draftGrade“, „assignedGrade“) instruiert

var studentSubmission = {'draftGrade':'88'} 
var patchC = Classroom.Courses.CourseWork.StudentSubmissions.patch(studentSubmission, courseId, cwId, submissionId); 
patchC.UpdateMask = "draftGrade"; 


var response = submisionObj.Execute(); 
+0

Ich konnte den Code ein wenig ändern, um zu reflektieren, was Sie beide sagten. Offensichtlich habe ich nicht genau das verwendet, was Sie beide gesagt haben, weil KENdi's Beispiel in Python und Ein2012 ist, es würde auf der var patchC = Classroom ... Zeile ausbleiben. Ich habe einige Dinge geändert, die jetzt so aussehen: 'code' –

0

Von Ihrem Fehler wird angegeben, dass die updateMask nur enthalten muss " draftGrade "oder" assignedGrade ". Also von Ihrem Code brauchen Sie nur diesen zwei Wert für die updateMask.

Die updateMask identifiziert, welche Felder auf dem Schüler-Beitrag aktualisiert werden sollen. Dieses Feld muss aktualisiert werden. Das Update schlägt fehl, wenn ungültige Felder

Von diesen documentation angegeben sind, die StudentSubmission Ressource hat zwei Felder zu speichern Qualitäten: assignedGrade, die die Klasse für Studenten berichtet sind, und draftGrade, die eine vorläufige Klasse Lehrer nur sichtbar ist. Diese Felder werden unter Verwendung von courses.courseWork.studentSubmissions.patch mit einer Feldmaske aktualisiert, die die entsprechenden Felder enthält.

Hier ist der Beispielcode, wie man das macht.

studentSubmission = { 
'assignedGrade': 99, 
'draftGrade': 80 
} 
service.courses().courseWork().studentSubmission().patch( 
courseId=<course ID or alias>, 
courseWorkId=<courseWork ID>, 
id=<studentSubmission ID>, 
updateMask='assignedGrade,draftGrade', 
body=studentSubmission).execute()