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, które chce przypisać 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 zadanie 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 odpowiednich 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 nauczyciel w kursie, w którym próbujesz utworzyć zadania CourseWork i ma przypisaną licencję na 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 logiczne pole 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('User eligibility for add-on attachment creation: '
      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 zadanie w wybranym kursie z dołączoną treścią. Użytkownicy mogą kliknąć Link, aby otworzyć zawartość Twojej witryny w nowej karcie.

Wersja robocza projektu CourseWork z linkiem 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.