L'application Classroom accepte trois types d'éléments de flux : CourseWork
, CourseWorkMaterials
et Announcements
. Ce guide explique comment gérer CourseWork
, mais les API pour tous les éléments du flux sont similaires. Pour en savoir plus sur les types d'éléments de flux et leurs différences, consultez Ressources de l'API.
La ressource CourseWork
représente un devoir qui a été attribué aux élèves d'un cours spécifique, y compris les documents et informations supplémentaires, comme la date limite ou la note maximale. Il existe quatre sous-types de CourseWork
: devoirs, questionnaires, questions à réponse courte et questions à choix multiples. L'API Classroom est compatible avec trois de ces sous-types : devoirs, questions à réponse courte et questions à choix multiples. Ces types sont représentés par le champ CourseWork.workType
.
En plus de la ressource CourseWork
, vous pouvez gérer les tâches terminées avec la ressource StudentSubmission
.
Créer un devoir
Les CourseWork
ne peuvent être créés qu'au nom de l'enseignant du cours.
Toute tentative de création d'un CourseWork
au nom d'un élève ou d'un administrateur de domaine qui n'est pas un enseignant du cours génère une erreur PERMISSION_DENIED
. Pour en savoir plus sur les différents rôles dans Classroom, consultez Types d'utilisateurs.
Lorsque vous créez CourseWork
à l'aide de la méthode courses.courseWork.create
, vous pouvez associer des liens en tant que materials
, comme indiqué dans l'exemple de code ci-dessous :
Java
Python
Les champs title
et workType
sont obligatoires. Tous les autres sont facultatifs.
Si state
n'est pas spécifié, CourseWork
est créé à l'état brouillon.
Utilisez une ressource Link avec une url
cible spécifiée pour inclure des supports associés dans le CourseWork
. Classroom récupère automatiquement l'title
et l'URL de la miniature (thumbnailUrl
). L'API Classroom est également compatible en mode natif avec les ressources Google Drive et YouTube, qui peuvent être incluses de la même manière avec une ressource DriveFile ou YouTubeVideo.
Pour spécifier une date limite, définissez les champs dueDate
et dueTime
sur l'heure UTC correspondante. La date limite doit être située dans le futur.
La réponse CourseWork
inclut un identifiant attribué par le serveur qui peut être utilisé pour référencer l'attribution dans d'autres requêtes API.
Récupérer un devoir
Vous pouvez récupérer CourseWork
au nom des élèves et des enseignants du cours correspondant. Vous pouvez également récupérer CourseWork
au nom des administrateurs de domaine, même s'ils ne sont pas enseignants dans le cours. Pour récupérer un CourseWork
spécifique, utilisez courses.courseWork.get
. Pour récupérer tous les CourseWork
(en faisant éventuellement correspondre certains critères), utilisez courses.courseWork.list
.
Le niveau d'accès requis dépend du rôle de l'utilisateur qui en fait la demande 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'un des champs d'application suivants :
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
L'autorisation de récupérer un CourseWork
n'implique pas l'autorisation d'accéder aux supports ou à leurs métadonnées. En pratique, cela signifie qu'un administrateur peut ne pas voir le titre d'un fichier Drive joint s'il n'est pas membre du cours.
Gérer les réponses des élèves
Une ressource StudentSubmission
représente le travail effectué par un élève pour un CourseWork
. La ressource inclut des métadonnées liées au devoir, telles que son état et sa note. Un StudentSubmission
est créé de manière implicite pour chaque élève lorsqu'un nouveau CourseWork
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 StudentSubmission
se voit attribuer un identifiant. Si vous connaissez l'identifiant, utilisez courses.courseWork.studentSubmissions.get
pour récupérer l'envoi.
Utilisez la méthode courses.courseWork.studentSubmissions.list
pour obtenir toutes les ressources StudentSubmission
qui correspondent à certains critères, comme indiqué dans l'exemple suivant :
Java
Python
Récupérez les ressources StudentSubmission
appartenant à un élève spécifique en spécifiant le paramètre userId
, comme illustré dans l'exemple suivant :
Java
Python
Les élèves sont identifiés par leur ID unique ou leur adresse e-mail, comme indiqué dans la ressource Student
. L'utilisateur actuel peut également faire référence à son propre ID à l'aide du raccourci "me"
.
Il est également possible de récupérer les devoirs de tous les élèves pour tous les devoirs d'un cours. Pour ce faire, utilisez le littéral "-"
comme courseWorkId
, comme indiqué 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 niveau d'accès requis dépend du rôle de l'utilisateur qui en fait la demande dans le cours. Si l'utilisateur est un enseignant ou un administrateur de domaine, utilisez le champ d'application suivant :
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
Si l'utilisateur est un élève, utilisez le champ d'application suivant :
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 StudentSubmission
n'implique pas d'être autorisé à accéder aux pièces jointes ni à leurs métadonnées. En pratique, cela signifie qu'un administrateur peut ne pas voir le titre d'un fichier Drive joint s'il n'est pas membre du cours.
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 indiqué dans l'exemple suivant :
Java
Python
Une pièce jointe Link
est définie par la cible url
. Classroom récupère automatiquement le title
et la miniature (thumbnailUrl
). Pour en savoir plus sur les supports pouvant être joints à StudentSubmissions
, consultez Material
.
Seul un enseignant du cours ou l'élève qui en est propriétaire peut modifier le StudentSubmission
. Vous ne pouvez associer Materials
que si le CourseWorkType
de StudentSubmission
est ASSIGNMENT
.
Le niveau d'accès requis dépend du rôle de l'utilisateur qui en fait la demande dans le cours. Si l'utilisateur est un enseignant, utilisez le champ d'application suivant :
https://www.googleapis.com/auth/classroom.coursework.students
Si l'utilisateur est un élève, utilisez le champ d'application suivant :
https://www.googleapis.com/auth/classroom.coursework.me