Anhänge außerhalb von Google Classroom erstellen

In diesem Leitfaden wird beschrieben, wie Sie Add-on-Anhänge auf Ihrer Website oder in Ihrer Anwendung erstellen. Die Interaktionen ähneln dem Erstellen von Aufgaben mit den CourseWork API-Endpunkten. Implementieren Sie diesen Prozess, damit Nutzer Add-on-Anhänge von Ihrer Website oder aus Ihrer Anwendung erstellen können.

Workflow

Auf übergeordneter Ebene folgt der Prozess zum Erstellen von Anhängen dieser Reihenfolge:

  1. Ein Lehrer öffnet Ihre Website oder App und wählt einen Inhalt aus, den er seinen Schülern zuweisen möchte.
  2. Prüfen Sie, ob der Nutzer Add-on-Anhänge erstellen kann.
  3. Wenn der Nutzer keine Add-on-Anhänge erstellen kann, erstellen Sie eine CourseWork-Aufgabe mit der URL zum ausgewählten Inhalt als Linkmaterial.
  4. Wenn der Nutzer Add-on-Anhänge erstellen kann, gehen Sie so vor:
    1. Erstellen Sie eine Aufgabe.
    2. Erstellen Sie einen Add-on-Anhang, der mit den ausgewählten Inhalten verknüpft ist, und verknüpfen Sie ihn mit der neuen Aufgabe.
    3. Informieren Sie die Lehrkraft darüber, dass die Aufgabe erstellt wurde.

Jede Aktion wird in den folgenden Abschnitten beschrieben.

Prüfen, ob Nutzer Add-on-Anhänge erstellen können

Sie können Add-on-Anhänge im Namen eines berechtigten Nutzers erstellen. Ein berechtigter Nutzer ist ein Nutzer, der Lehrkraft in dem Kurs ist, in dem Sie Kursaufgaben erstellen möchten, und ihm die Lizenz für Teaching & Learning oder Education Plus für Google Workspace for Education zugewiesen wurde.

Ermitteln Sie zuerst, ob der Nutzer Add-ons in einem bestimmten Course erstellen darf. Senden Sie eine Anfrage einschließlich der Kurs-ID an den Endpunkt courses.checkAddOnCreationEligibility.

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

Wenn der Nutzer berechtigt ist, enthält die Antwort den booleschen Wert isCreateAttachmentEligible, der auf true gesetzt ist. Wenn der Nutzer nicht berechtigt ist, wird in der Antwort nicht der boolesche Wert isCreateAttachmentEligible zurückgegeben.

Weiterleitung des Nutzers auf Grundlage seiner Berechtigung

Von der Berechtigung hängt ab, ob Sie Add-on-Anhänge für einen Nutzer erstellen können.

Nicht berechtigter Nutzer

Wenn der Nutzer keine Add-on-Anhänge erstellen kann, erstellen Sie eine neue CourseWork-Zuweisung mit der vom Nutzer ausgewählten Inhalts-URL als 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")}'
  )

Die Antwort enthält eine Aufgabe zum gewünschten Kurs mit angehängtem Inhalt. Nutzer können auf das Link klicken, um den Inhalt der Website in einem neuen Tab zu öffnen.

Kursarbeitsentwurf mit Linkmaterial

Abbildung 1: Ansicht für Lehrkräfte auf einen Entwurf einer CourseWork-Aufgabe mit Linkmaterial.

Berechtigter Nutzer

Führen Sie die folgenden Schritte aus, wenn der Nutzer Add-on-Anhänge erstellen kann.

  1. Erstellen Sie eine neue CourseWork-Aufgabe ohne Anhänge.
  2. Add-on-Anhang erstellen

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

Das Add-on wird in Classroom als Karte mit Anhang angezeigt. Die in der Anfrage angegebenen URLs werden im entsprechenden iFrame für die jeweilige Datenansicht geöffnet.