Tworzenie załączników poza Google Classroom

Ten przewodnik dotyczy tworzenia załączników dodatków w witrynie lub aplikacji. Interakcje są podobne do tworzenia projektów przy użyciu punktów końcowych CourseWork API. Wdróż tę ścieżkę, aby umożliwić użytkownikom tworzenie załączników dodatków z Twojej witryny lub aplikacji.

Przepływ pracy

Ogólnie proces tworzenia załączników przebiega w takiej kolejności:

  1. Nauczyciel otwiera Twoją witrynę lub aplikację. Wybiera treść, którą przypisze uczniom.
  2. Sprawdź, czy użytkownik może tworzyć załączniki dodatków.
  3. Jeśli użytkownik nie może tworzyć załączników dodatków, utwórz projekt CourseWork z adresem URL do wybranych treści jako materiałem linku.
  4. Jeśli użytkownik może tworzyć załączniki dodatków, wykonaj te czynności:
    1. Utwórz projekt.
    2. Utwórz załącznik dodatku, który będzie zawierać linki do wybranych treści, i powiąż je z nowym projektem.
  5. Poinformuj nauczyciela, że projekt został utworzony.

Każdą czynność opisano w poniższych sekcjach.

Sprawdzanie, czy użytkownik może tworzyć załączniki dodatków

Możesz tworzyć załączniki dodatków w imieniu odpowiedniego użytkownika. Uprawniony użytkownik to użytkownik będący nauczycielem na zajęciach, w których próbujesz utworzyć projekty CourseWork, oraz ma przypisaną licencję na wersję Teaching and Learning lub Education Plus Google Workspace for Education.

Zacznij od określenia, czy użytkownik może tworzyć dodatki w danym elemencie Course. Wyślij żądanie do punktu końcowego courses.checkAddOnCreationEligibility, podając identyfikator zajęć.

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

Jeśli użytkownik spełnia kryteria, odpowiedź zawiera wartość logiczną isCreateAttachmentEligible ustawioną na true. Jeśli użytkownik się nie kwalifikuje, odpowiedź nie zwróci wartości logicznej isCreateAttachmentEligible.

Przekierowywanie użytkownika na podstawie kryteriów kwalifikacji

To ustawienie określa, czy możesz tworzyć załączniki dodatków dla użytkownika.

Użytkownik nieuprawniony

Jeśli użytkownik nie może tworzyć załączników dodatków, utwórz nowe przypisanie CourseWork z wybranym przez użytkownika adresem URL treści jako 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")}'
  )

Odpowiedź zawiera projekt z wybranych zajęć z załączoną treścią. Użytkownicy mogą kliknąć Link, aby otworzyć zawartość witryny w nowej karcie.

Tworzenie wersji roboczej projektu CourseWork z materiałem z linkiem

Rysunek 1. Widok nauczyciela wersji roboczej projektu CourseWork z materiałem z linkiem.

Uprawniony użytkownik

Jeśli użytkownik może tworzyć załączniki dodatków, wykonaj te czynności.

  1. Utwórz nowy projekt CourseWork bez załączników.
  2. Utwórz załącznik dodatku.

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

Dodatek będzie widoczny w Classroom jako karta załącznika. Adresy URL określone w żądaniu otwierają się w odpowiednim elemencie iframe dla każdego widoku danych.