Creare allegati al di fuori di Google Classroom

Questa guida spiega come creare allegati di componenti aggiuntivi nel tuo sito web o nella tua applicazione. Le interazioni sono simili alla creazione di assegnazioni utilizzando gli endpoint dell'API CourseWork. Implementa questo percorso per consentire agli utenti di creare allegati di componenti aggiuntivi dal tuo sito web o dalla tua applicazione.

Flusso di lavoro

A livello generale, il percorso di creazione degli allegati segue questa sequenza:

  1. Un utente insegnante apre il tuo sito web o la tua app e seleziona un contenuto da assegnare ai propri studenti.
  2. Verifica che l'utente possa creare allegati di componenti aggiuntivi.
  3. Se l'utente non può creare allegati di componenti aggiuntivi, crea un compito CourseWork con l'URL dei contenuti selezionati come materiale del link.
  4. Se l'utente può creare allegati di componenti aggiuntivi:
    1. Crea un compito.
    2. Crea un allegato del componente aggiuntivo che si colleghi ai contenuti selezionati e associalo al nuovo compito.
    3. Comunica all'insegnante che il compito è stato creato correttamente.

Ogni azione è descritta nelle sezioni seguenti.

Controllare se un utente può creare allegati di componenti aggiuntivi

Puoi creare allegati di componenti aggiuntivi per conto di un utente idoneo. Un utente idoneo è un utente che è un insegnante del corso in cui stai cercando di creare compiti di CourseWork a cui è stata assegnata la licenza della versione Google Workspace for Education o Teaching & Learning Upgrade.

Per prima cosa, stabilisci se l'utente può creare componenti aggiuntivi in una determinata Course. Invia una richiesta all'endpoint courses.checkAddOnCreationEligibility, incluso l'ID corso.

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}.')

Se l'utente è idoneo, la risposta contiene il valore booleano isCreateAttachmentEligible impostato su true. Se l'utente non è idoneo, la risposta non restituirà il valore booleano isCreateAttachmentEligible.

Indirizzare l'utente in base alla sua idoneità

L'idoneità determina se è possibile creare allegati aggiuntivi per un utente.

Utente non idoneo

Se l'utente non può creare allegati di componenti aggiuntivi, crea un nuovo compito CourseWork con l'URL dei contenuti selezionato dall'utente come 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 risposta contiene un compito nel corso richiesto con i contenuti allegati. Gli utenti possono fare clic sulla Link per aprire i contenuti del sito in una nuova scheda.

Prepara la bozza del compito di CourseWork con materiale per il link

Figura 1. Visualizzazione dell'insegnante di una bozza di compito di CourseWork con materiale dei link.

Utente idoneo

Procedi nel seguente modo se l'utente può creare allegati di componenti aggiuntivi.

  1. Crea un nuovo compito CourseWork senza allegati.
  2. Crea un allegato del componente aggiuntivo.

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")}'
  )

Il componente aggiuntivo viene visualizzato come scheda allegata in Classroom. Gli URL specificati nella richiesta si aprono nell'iframe per ogni vista appropriato.