Ce guide explique comment créer des pièces jointes de modules complémentaires sur votre site Web ou dans votre application. Les interactions sont semblables à celles qui permettent de créer des devoirs à l'aide des points de terminaison de l'API CourseWork. Implémentez ce parcours pour permettre aux utilisateurs de créer des pièces jointes de modules complémentaires à partir de votre site Web ou de votre application.
Workflow
En général, le parcours de création de pièces jointes suit cette séquence :
- Un enseignant ouvre votre site Web ou votre application. Il sélectionne un contenu à attribuer à ses élèves.
- Vérifiez que l'utilisateur peut créer des pièces jointes de modules complémentaires.
- Si l'utilisateur ne peut pas créer de pièces jointes de modules complémentaires, créez un devoir CourseWork avec l'URL du contenu sélectionné en tant que matériel de lien.
- Si l'utilisateur peut créer des pièces jointes de modules complémentaires, procédez comme suit :
- Créez un devoir.
- Créez une pièce jointe de module complémentaire qui renvoie au contenu sélectionné et associez-la au nouveau devoir.
- Informez l'enseignant que le devoir a bien été créé.
Chaque action est décrite dans les sections suivantes.
Vérifier si un utilisateur peut créer des pièces jointes de modules complémentaires
Vous pouvez créer des pièces jointes de modules complémentaires au nom d'un utilisateur éligible. Un utilisateur éligible est un enseignant du cours dans lequel vous essayez de créer des devoirs CourseWork et qui dispose d'une licence Google Workspace for Education édition Teaching &Learning ou Education Plus.
Commencez par déterminer si l'utilisateur peut créer des pièces jointes de modules complémentaires. Pour ce faire, envoyez une requête au userProfiles.checkUserCapability point de terminaison
avec le CREATE_ADD_ON_ATTACHMENT paramètre de capacité. Inspectez le champ booléen allowed dans la réponse. La valeur true indique que l'utilisateur est éligible pour créer des pièces jointes de modules complémentaires.
Python
eligibility_response = (
classroom_service.userProfiles()
.checkUserCapability(
userId="me",
capability="CREATE_ADD_ON_ATTACHMENT",
# The previewVersion is necessary while the method is available in the
# Workspace Developer Preview Program.
previewVersion="V1_20240930_PREVIEW",
).execute()
)
is_create_attachment_eligible = (
eligibility_response.get('allowed')
)
print('User eligibility for add-on attachment creation: '
f'{is_create_attachment_eligible}.')
Diriger l'utilisateur en fonction de son éligibilité
L'éligibilité détermine si vous pouvez créer des pièces jointes de modules complémentaires pour un utilisateur.
Utilisateur non éligible
Si l'utilisateur ne peut pas créer de pièces jointes de modules complémentaires, créez un nouveau devoir CourseWork
avec l'URL du contenu sélectionné par l'utilisateur en tant que Link.
Python
if not is_create_attachment_eligible:
coursework = {
'title': 'My CourseWork Assignment with Link Material',
'description': 'Created using the Classroom CourseWork API.',
'workType': 'ASSIGNMENT',
'state': 'DRAFT', # Set to 'PUBLISHED' to assign to students.
'maxPoints': 100,
'materials': [
{'link': {'url': my_content_url}}
]
}
assignment = (
service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
print(
f'Link Material assignment created with ID: {assignment.get("id")}'
)
La réponse contient un devoir dans le cours demandé avec le contenu joint. Les utilisateurs peuvent cliquer sur le Link pour ouvrir le contenu dans votre site dans un nouvel onglet.

Figure 1. Vue de l'enseignant d'un devoir CourseWork brouillon avec du matériel de lien.
Utilisateur éligible
Procédez comme suit si l'utilisateur peut créer des pièces jointes de modules complémentaires.
- Créez un devoir
CourseWorksans pièce jointe. - Créez une pièce jointe de module complémentaire.
- Définissez le
AddOnAttachment'sitemIdsur leiddu devoir nouvellement créé. - Assurez-vous de fournir des URL au contenu sélectionné par l'utilisateur pour chaque vue que vous prenez en charge.
- Définissez le
Python
if is_create_attachment_eligible:
coursework = {
'title': 'My CourseWork Assignment with Add-on Attachment',
'description': 'Created using the Classroom CourseWork API.',
'workType': 'ASSIGNMENT',
'state': 'DRAFT', # Set to 'PUBLISHED' to assign to students.
'maxPoints': 100,
}
assignment = (
classroom_service.courses()
.courseWork()
.create(courseId=course_id, body=coursework)
.execute()
)
print(
f'Empty assignment created with ID: {assignment.get("id")}'
)
attachment = {
'teacherViewUri': {'uri': teacher_view_url},
'studentViewUri': {'uri': student_view_url},
'studentWorkReviewUri': {'uri': grade_student_work_url},
'title': f'Test Attachment {test_label}',
}
add_on_attachment = (
service.courses()
.courseWork()
.addOnAttachments()
.create(
courseId=course_id,
itemId=assignment.get("id"), # ID of the new assignment.
body=attachment,
)
.execute()
)
print(
f'Add-on attachment created with ID: {add_on_attachment.get("id")}'
)
Le module complémentaire apparaît sous forme de fiche de pièce jointe dans Classroom. Les URL spécifiées dans la requête s'ouvrent dans l'iframe approprié pour chaque vue.