Créer des pièces jointes en dehors de Google Classroom

Ce guide explique comment créer des pièces jointes de modules complémentaires sur votre site Web ou votre application. Les interactions sont semblables à la création de devoirs à l'aide de l'API CourseWork points de terminaison. Procédez ainsi pour permettre aux utilisateurs de créer des pièces jointes de modules complémentaires. de votre site Web ou de votre application.

Workflow

Dans les grandes lignes, le processus de création de pièces jointes se déroule comme suit:

  1. Un enseignant ouvre votre site Web ou votre application. Il sélectionne un contenu à attribuer à leurs élèves.
  2. Vérifiez que l'utilisateur peut créer des pièces jointes de module complémentaire.
  3. Si l'utilisateur ne peut pas créer de pièces jointes de module complémentaire, créez un cours CourseWork attribution avec l'URL du contenu sélectionné en tant que support de lien.
  4. Si l'utilisateur peut créer des pièces jointes de module complémentaire, procédez comme suit:
    1. Créez un devoir.
    2. Créez une pièce jointe de module complémentaire qui renvoie vers le contenu sélectionné et l'associer à la nouvelle attribution.
  5. 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 module complémentaire

Vous pouvez créer des pièces jointes de module complémentaire au nom d'un utilisateur éligible. Un élément éligible "user" est un enseignant du cours que vous essayez de créer. Devoirs en et contient le cours Learning ou Education Plus licence Google Workspace for Education qui leur est attribuée.

Commencez par déterminer si l'utilisateur peut créer des modules complémentaires dans un Course donné. Envoyer une requête au point de terminaison courses.checkAddOnCreationEligibility y compris l'ID du cours.

Python

eligibility_response = (
  classroom_service.courses()
  .checkAddOnCreationEligibility(courseId=course_id)
  .execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('isCreateAttachmentEligible')
)
print(f'User eligibility for course {eligibility_response.get("courseId")}'
      f': {is_create_attachment_eligible}.')

Si l'utilisateur est éligible, la réponse contient la valeur booléenne La valeur de isCreateAttachmentEligible a été définie sur true. Si l'utilisateur n'est pas éligible, la réponse ne renverra pas la valeur booléenne isCreateAttachmentEligible.

Rediriger 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 module complémentaire, créez une CourseWork. avec l'URL de contenu sélectionnée par l'utilisateur sous forme de 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 . Les utilisateurs peuvent cliquer sur Link pour ouvrir le contenu de votre site dans une nouvelle .

Brouillon de devoir CourseWork avec Link Material

Figure 1. Vue enseignant d'un brouillon de devoir CourseWork avec un lien Material.

Utilisateur éligible

Procédez comme suit si l'utilisateur peut créer des pièces jointes de module complémentaire.

  1. Créer un devoir CourseWork sans pièce jointe
  2. Créez une pièce jointe de module complémentaire.

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 carte associée à une pièce jointe dans Classroom. Les URL spécifié dans la demande ouverte dans les iFrame pour chaque View.