L'interface utilisateur de Classroom prend en charge cinq types de travaux et devoirs: devoirs, devoirs sous forme de quiz, questions à réponse courte, questions à choix multiples et supports de cours. L'API Classroom accepte actuellement trois de ces types, appelés CourseWorkType
pour l'API: devoirs, questions à réponse courte et questions à choix multiples.
Pour accéder à cette fonctionnalité, vous pouvez utiliser la ressource CourseWork, qui représente un devoir ou une question attribué à des élèves dans un cours particulier, y compris les ressources et les détails supplémentaires, comme la date limite 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 les décrivent plus en détail.
Créer des devoirs
Les devoirs ne peuvent être créés que pour le compte de l'un ou des enseignants du cours. Si vous essayez de créer des devoirs dans un cours pour le compte d'un élève, une erreur 403 PERMISSION_DENIED
s'affiche. De même, les administrateurs de domaine ne peuvent pas créer de devoirs pour des cours qu'ils n'enseignent pas. Toute tentative de le faire via l'API entraînera également une erreur PERMISSION_DENIED
403.
Lorsque vous créez des devoirs à l'aide de la méthode courses.courseWork.create
, vous pouvez joindre des liens en tant que materials
, comme indiqué 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 d'API.
Pour inclure des ressources associées dans un devoir créé via l'API Classroom, utilisez une ressource de lien en spécifiant l'URL cible. Classroom récupère automatiquement le titre et l'image miniature. L'API Classroom est également compatible en mode natif avec les supports Google Drive et YouTube, qui peuvent être inclus avec une ressource DriveFile ou une ressource YouTubeVideo de la même manière.
Pour spécifier une date limite, définissez les champs dueDate
et dueTime
sur l'heure UTC correspondante. La date limite doit se situer dans le futur.
Récupérer les devoirs et les questions
Vous pouvez récupérer les devoirs et les questions pour les élèves et les enseignants du cours correspondant ou par un administrateur de domaine. Pour récupérer un devoir ou une question spécifique, utilisez courses.courseWork.get. Pour récupérer tous les devoirs ou toutes les questions (en fonction de certains critères, le cas échéant), utilisez courses.courseWork.list.
Le champ d'application requis dépend du rôle de l'utilisateur demandeur dans le cours. Si l'utilisateur est un élève, utilisez l'un des champs d'application suivants:
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'une des portées suivantes:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Le fait d'avoir l'autorisation de récupérer un devoir ou une question n'implique pas d'autorisations d'accès aux supports de cours ou aux métadonnées des supports de cours. En pratique, cela signifie qu'un administrateur ne verra peut-être pas le titre d'un fichier Drive joint s'il n'est pas membre du cours. Si vous souhaitez autoriser les administrateurs à accéder aux fichiers utilisateur, consultez le guide sur la délégation au niveau du domaine.
Gérer les réponses des élèves
Une ressource StudentSubmission
représente le travail effectué et la note d'un élève pour un devoir ou une question. Une ressource StudentSubmission
est créée implicitement pour chaque élève lorsqu'une question ou un devoir est créé.
Les sections suivantes expliquent 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 propres devoirs, les enseignants peuvent récupérer les devoirs de tous les élèves de leurs cours, et les administrateurs de domaine peuvent récupérer tous les devoirs de tous les élèves de leur domaine. Chaque devoir envoyé par un élève reçoit un identifiant. Si vous le connaissez, récupérez-le à l'aide de courses.courseWork.studentSubmissions.get
.
Utilisez la méthode courses.courseWork.studentSubmissions.list
pour obtenir les ressources StudentSubmission
qui répondent à certains critères, comme illustré dans l'exemple suivant:
Java
Python
Récupérez les ressources StudentSubmission
qui appartiennent à un étudiant particulier en spécifiant le paramètre userId
, comme illustré dans l'exemple suivant:
Java
Python
Les élèves sont identifiés par l'ID unique ou l'adresse e-mail de l'utilisateur, comme indiqué par le SDK Google Admin. L'utilisateur actuel peut également faire référence à son propre ID à l'aide de l'abréviation "me"
.
Il est également possible de recevoir les devoirs des élèves pour tous les devoirs d'un cours. Pour ce faire, utilisez la valeur littérale "-"
comme courseWorkId
, comme illustré dans 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 le cours. Utilisez le champ d'application suivant si l'utilisateur est un enseignant ou un administrateur de domaine:
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
Le fait d'être autorisé à récupérer un devoir d'élève n'implique pas d'autorisations d'accéder aux pièces jointes ni aux métadonnées des pièces jointes. En pratique, cela signifie qu'un administrateur ne verra peut-être pas le titre d'un fichier Drive joint s'il n'est pas membre du cours. Si vous souhaitez autoriser les administrateurs à accéder aux fichiers des utilisateurs, consultez le guide sur la délégation au niveau du domaine.
Ajouter des pièces jointes à une réponse d'élève
Vous pouvez joindre des liens à un devoir d'élève en joignant une ressource Link
, DriveFile
ou YouTubeVideo
. Pour ce faire, utilisez courses.courseWork.studentSubmissions.modifyAttachments
, comme illustré dans l'exemple suivant:
Java
Python
Une pièce jointe de lien est définie par l'URL cible. Classroom extrait automatiquement le titre et l'image miniature. Pour en savoir plus sur les autres documents, consultez leurs pages de référence respectives.
Le StudentSubmission
ne peut être modifié que par un enseignant ou par l'élève qui en est le propriétaire. Vous ne pouvez joindre Materials
que si la valeur CourseWorkType
de l'envoi 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 le 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