Anhänge außerhalb von Google Classroom erstellen

In dieser Anleitung wird beschrieben, wie Sie Add-on-Anhänge auf Ihrer Website oder in Ihrer Anwendung erstellen. Die Interaktionen ähneln dem Erstellen von Aufgaben über die CourseWork API-Endpunkte. Implementieren Sie diese Methode, damit Nutzer auf Ihrer Website oder in Ihrer Anwendung Add-on-Anhänge erstellen können.

Workflow

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

  1. Ein Kursleiter öffnet Ihre Website oder App und wählt einen Inhalt aus, den er seinen Schülern bzw. Studenten 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 zu den ausgewählten Inhalten 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 dem ausgewählten Inhalt verknüpft ist, und verknüpfen Sie ihn mit der neuen Zuweisung.
  5. Informieren Sie die Lehrkraft, dass die Aufgabe erfolgreich erstellt wurde.

Jede Aktion wird in den folgenden Abschnitten beschrieben.

Prüfen, ob ein Nutzer Add-on-Anhänge erstellen kann

Sie können Add-on-Anhänge im Namen eines berechtigten Nutzers erstellen. Berechtigte Nutzer sind Nutzer, die in dem Kurs, in dem Sie Kurswork-Aufgaben erstellen möchten, Lehrkraft sind und denen die Lizenz „Teaching & Learning“ oder „Education Plus“ für Google Workspace for Education zugewiesen ist.

Ermitteln Sie zuerst, ob der Nutzer in einem bestimmten Course Add-ons erstellen kann. Sende 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 kein boolescher Wert isCreateAttachmentEligible zurückgegeben.

Leite den Nutzer entsprechend seiner Berechtigung weiter.

Die Berechtigung bestimmt, 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 im angeforderten Kurs mit dem Anhang. Nutzer können auf das Link klicken, um den Inhalt deiner Website in einem neuen Tab zu öffnen.

Kurswork-Aufgabe mit Linkmaterial entwerfen

Abbildung 1: Ansicht für Lehrkräfte eines Kurswork-Aufgabenentwurfs mit Linkmaterial.

Berechtigter Nutzer

Gehen Sie so vor, wenn der Nutzer Add-on-Anhänge erstellen kann:

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

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 für Anhänge angezeigt. Die in der Anfrage angegebenen URLs werden im entsprechenden iFrame für jede Datenansicht geöffnet.