L'interface utilisateur de Classroom accepte cinq types de travaux et devoirs: Devoirs,
les devoirs avec quiz, les questions à réponse courte, les questions à choix multiples et
Supports de cours. L'API Classroom est actuellement compatible avec trois de ces types :
sont appelées CourseWorkType
pour l'API: Devoirs, réponse courte
et des questions à choix multiples.
Pour accéder à cette fonctionnalité, vous pouvez utiliser le Ressource CourseWork qui représente un devoir ou une question qui a été attribué aux élèves un cours particulier, y compris tout support ou toute information supplémentaire, comme la la date ou le score maximal.
En plus de la ressource CourseWork, vous pouvez gérer les devoirs terminés
avec la ressource StudentSubmission
. Les sections suivantes décrivent
plus en détail.
Créer des devoirs
Les devoirs peuvent uniquement être créés au nom du ou des enseignants du cours.
tenter de créer des devoirs dans un cours au nom d'un élève aura pour conséquence
dans une erreur 403 PERMISSION_DENIED
. De même, les administrateurs de domaine ne peuvent pas non plus créer
devoirs pour les cours qu'il n'enseigne pas et qui tentent de le faire via l'API
génère également une erreur 403 PERMISSION_DENIED
.
Lorsque vous créez des devoirs à l'aide de la méthode courses.courseWork.create
, vous
pouvez joindre des liens au format materials
, comme illustré dans l'exemple de code ci-dessous:
Java
Python
Le résultat inclut un identifiant attribué par le serveur qui peut être utilisé pour référencer l'attribution dans d'autres requêtes API.
Pour inclure des supports associés dans un devoir créé via l'API Classroom : utilisez une ressource "Link", en spécifiant l'URL cible. Classroom récupère automatiquement le titre et la vignette. De plus, l'API Classroom est compatible de manière native avec les supports Google Drive et YouTube, ce qui permet dans une ressource DriveFile ; ou ressource YouTubeVideo dans une ressource de la même façon.
Pour spécifier une date limite, définissez les champs dueDate
et dueTime
sur la
à l'heure UTC correspondante. La date limite doit être située dans le futur.
Récupérer les devoirs et les questions
Vous pouvez récupérer les devoirs et les questions des élèves et des enseignants du cours correspondant ou par un administrateur du domaine. Pour récupérer un type d'un devoir ou d'une question, utilisez courses.courseWork.get. Pour tout récupérer, procédez comme suit : ou questions (correspondant éventuellement à certains critères), utilisez courses.courseWork.list.
<ph type="x-smartling-placeholder">Le champ d'application requis dépend du rôle de l'utilisateur à l'origine de la demande dans de ce cours. Si l'utilisateur est un élève, utilisez l'une des portées suivantes:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Si l'utilisateur est un enseignant ou un administrateur de domaine, utilisez l'un des éléments suivants : champs d'application:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Avoir l'autorisation de récupérer un devoir ou une question n'implique pas autorisations d'accès à des contenus ou à leurs métadonnées. En pratique, cela signifie qu'un administrateur ne voie pas le titre d'un fichier Drive joint s'il n'est pas membre du cours. Pour autoriser les administrateurs à accéder aux comptes consultez la liste des paramètres d'un domaine délégation .
Gérer les réponses des élèves
Un StudentSubmission
ressource représente le travail effectué et la note d'un élève pour un devoir ou
cette question. Un StudentSubmission
ressource est créée implicitement pour chaque élève lorsqu'une nouvelle question ou
l'attribution est créée.
Les sections suivantes décrivent les actions courantes permettant de gérer les réponses des élèves.
Récupérer les réponses des élèves
Les élèves peuvent récupérer leurs devoirs, et les enseignants
pour tous les élèves de leurs cours. De leur côté, les administrateurs du domaine peuvent récupérer
les devoirs rendus par tous les élèves de son domaine. Le travail de chaque élève est
lui attribuer un identifiant ; si vous connaissez l'identifiant, utilisez
courses.courseWork.studentSubmissions.get
pour le récupérer.
Utilisez la méthode courses.courseWork.studentSubmissions.list
pour obtenir
StudentSubmission
ressources correspondant à certains critères, comme indiqué dans la
l'exemple suivant:
Java
Python
Récupérez StudentSubmission
les ressources appartenant à un élève en particulier en
en spécifiant le paramètre userId
, comme illustré dans l'exemple suivant:
Java
Python
Les élèves sont identifiés par l'identifiant unique ou l'adresse e-mail de l'utilisateur, comme
renvoyées par Google Admin SDK. L'utilisateur actuel peut également faire référence à ses propres
ID à l'aide du raccourci "me"
.
Il est également possible de recevoir les devoirs des élèves pour tous les devoirs d'une
de ce cours. Pour ce faire, utilisez la valeur littérale "-"
comme courseWorkId
, comme indiqué dans les
l'exemple suivant:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
Le champ d'application requis dépend du rôle de l'utilisateur à l'origine de la demande dans de ce cours. Utilisez le champ d'application suivant si l'utilisateur est un enseignant ou un domaine administrateur:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Utilisez le champ d'application suivant si l'utilisateur est un élève:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
Avoir l'autorisation de récupérer le travail d'un élève n'implique pas autorisations d'accès aux pièces jointes ou aux métadonnées des pièces jointes. En pratique, signifie qu'il est possible qu'un administrateur ne voie pas le titre d'un fichier Drive joint : ils ne sont pas membres du cours. Si vous souhaitez autoriser les administrateurs à accéder aux fichiers utilisateur, consultez la délégation au niveau du domaine.
Ajouter des pièces jointes à la réponse d'un élève
Vous pouvez joindre des liens au devoir d'un élève en joignant un Link
,
Ressource DriveFile
ou YouTubeVideo
. Cela se fait avec
courses.courseWork.studentSubmissions.modifyAttachments
, comme indiqué dans les
l'exemple suivant:
Java
Python
Une pièce jointe de lien est définie par l'URL cible. Classroom va automatiquement récupérer le titre et l'image de la miniature. Pour en savoir plus sur les autres supports, consultez la page leurs pages de référence respectives.
Le StudentSubmission
ne peut être modifié que par l'enseignant du cours ou par
l'élève qui en est le propriétaire. Vous ne pouvez joindre Materials
que si le
CourseWorkType
du devoir de l'élève est ASSIGNMENT
.
Le champ d'application requis dépend du rôle de l'utilisateur à l'origine de la demande dans de ce cours. Utilisez le champ d'application suivant si l'utilisateur est un enseignant:
https://www.googleapis.com/auth/classroom.coursework.students
Utilisez le champ d'application suivant si l'utilisateur est un élève:
https://www.googleapis.com/auth/classroom.coursework.me
Gérer l'état des réponses des élèves
La réponse d'un élève peut être annulée, rendue ou rendue. Le champ État
dans StudentSubmission
indique l'état actuel. Pour modifier l'état, appelez
l'une des méthodes suivantes:
courses.courseWork.studentSubmissions.turnIn
courses.courseWork.studentSubmissions.return
courses.courseWork.studentSubmissions.reclaim
Toutes ces méthodes utilisent un corps vide. Exemple :
Java
Python
service.courses().courseWork().studentSubmission().turnIn(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
body={}).execute()
Seul l'élève propriétaire d'un StudentSubmission
peut le rendre ou le récupérer.
Vous ne pouvez récupérer qu'un devoir remis. Les enseignants du cours ne peuvent renvoyer
StudentSubmission
à l'état remis.
Noter les réponses des élèves
La ressource StudentSubmission
comporte deux champs pour stocker les notes:
assignedGrade
, qui est la note transmise aux élèves, et draftGrade
,
Il s'agit d'une note provisoire visible uniquement par les enseignants. Ces champs sont mis à jour
Utiliser courses.courseWork.studentSubmissions.patch
avec un masque de champ
contenant les champs appropriés, comme illustré dans l'exemple suivant.
Java
Python
studentSubmission = {
'assignedGrade': 99,
'draftGrade': 80
}
service.courses().courseWork().studentSubmissions().patch(
courseId=<course ID or alias>,
courseWorkId=<courseWork ID>,
id=<studentSubmission ID>,
updateMask='assignedGrade,draftGrade',
body=studentSubmission).execute()
Dans l'interface utilisateur de Classroom, les enseignants ne peuvent pas attribuer de notes tant qu'ils n'ont pas ont d'abord enregistré une note temporaire. La note attribuée peut ensuite être renvoyée à un élève. Les applications doivent émuler ce comportement. Votre application peut Pour noter le devoir d'un élève, deux possibilités s'offrent à vous:
Attribuez uniquement l'élément
draftGrade
. Cela permet, par exemple, à l'enseignant revoir manuellement les notes avant de les finaliser. Les élèves ne peuvent pas voir les notes temporaires.Attribuez à la fois les
draftGrade
et lesassignedGrade
pour noter complètement un devoir.
Lister les notes attribuées
Vous pouvez lister toutes les notes d’un élément de travail particulier en explorant les
Objet de réponse de la méthode courses.courseWork.studentSubmissions.list
:
Java
Python
response = coursework.studentSubmissions().list(
courseId=course_id,
courseWorkId=coursework_id,
pageSize=10).execute()
submissions.extend(response.get('studentSubmissions', []))
if not submissions:
print('No student submissions found.')
print('Student Submissions:')
for submission in submissions:
print(f"Submitted at:"
f"{(submission.get('userId'), submission.get('assignedGrade'))}")