Tworzenie załączników poza Google Classroom

W tym przewodniku znajdziesz informacje o tworzeniu załączników dodatków w witrynie lub aplikacji. Interakcje te są podobne do tworzenia projektów za pomocą punktów końcowych interfejsu CourseWork API. Wdrożenie tej ścieżki umożliwia użytkownikom tworzenie załączników dodatków z Twojej witryny lub aplikacji.

Przepływ pracy

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

  1. Nauczyciel otwiera Twoją witrynę lub aplikację. Wybiera treści do przydzielenia uczniom.
  2. Sprawdź, czy użytkownik może tworzyć załączniki dodatków.
  3. Jeśli użytkownik nie może utworzyć załączników dodatków, utwórz projekt CourseWork z adresem URL wybranych treści jako materiałem linkowanym.
  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ć link do wybranej treści, i powiązać go z nowym projektem.
  5. Poinformuj nauczyciela, że zadanie zostało utworzone.

Każde działanie jest opisane w następnych sekcjach.

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

Możesz tworzyć załączniki dodatków w imieniu kwalifikującego się użytkownika. Kwalifikujący się użytkownik to użytkownik, który jest nauczycielem na zajęciach, w ramach których chcesz tworzyć zadania CourseWork, oraz ma przypisaną licencję Google Workspace for Education w wersji Teaching and Learning lub Education Plus.

Najpierw określ, czy użytkownik może tworzyć załączniki dodatków. Możesz to zrobić, wysyłając żądanie do punktu końcowego userProfiles.checkUserCapability z parametrem CREATE_ADD_ON_ATTACHMENT capability. Sprawdź w odpowiedzi pole logiczne allowed. Wartość true wskazuje, że użytkownik może tworzyć załączniki dodatków.

Python

eligibility_response = (
  classroom_service.userProfiles()
  .checkUserCapability(
    userId="me",
    capability="CREATE_ADD_ON_ATTACHMENT",
    # The previewVersion is necessary while the method is available in the
    # Workspace Developer Preview Program.
    previewVersion="V1_20240930_PREVIEW",
  ).execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('allowed')
)
print(f'User eligibility for course {course_id}'
      f': {is_create_attachment_eligible}.')

Przekieruj użytkownika na podstawie jego uprawnień

Kwalifikacja określa, czy możesz utworzyć załączniki dodatku dla użytkownika.

Niekwalifikujący się użytkownik

Jeśli użytkownik nie może utworzyć załączników dodatku, utwórz nowe CourseWorkprzypisanie 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 w żądanym kursie z dołączonymi treściami. Użytkownicy mogą kliknąć Link, aby otworzyć zawartość Twojej witryny w nowej karcie.

Wersja robocza projektu CourseWork z linkami do materiałów

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

Użytkownik kwalifikujący się do udziału w programie

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. utworzyć 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 pojawi się w Classroom jako karta załącznika. Adresy URL określone w prośbie otwierają się w odpowiednim ramce iframe dla każdej widoczności.