Tworzenie załączników poza Google Classroom

Ten przewodnik opisuje tworzenie załączników dodatków w witrynie lub aplikacji. Interakcje są podobne do tworzenia projektów za pomocą punktów końcowych interfejsu CourseWork API endpoints. Zaimplementuj ten proces, aby umożliwić użytkownikom tworzenie załączników dodatków w Twojej witrynie lub aplikacji.

Przepływ pracy

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

  1. Nauczyciel otwiera Twoją witrynę lub aplikację i 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 tworzyć załączników dodatków, utwórz projekt CourseWork z adresem URL do wybranych treści jako materiałem z linkiem.
  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 wybranych treści, i powiąż go z nowym projektem.
  5. Poinformuj nauczyciela, że projekt został utworzony.

Każda czynność jest opisana w kolejnych sekcjach.

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

Możesz tworzyć załączniki dodatków w imieniu uprawnionego użytkownika. Uprawniony użytkownik to nauczyciel w kursie, w którym próbujesz utworzyć projekty CourseWork, oraz ma przypisaną licencję Google Workspace for Education w wersji Teaching &Learning lub Education Plus.

Zacznij od sprawdzenia, czy użytkownik może tworzyć załączniki dodatków. Możesz to zrobić , wysyłając prośbę do punktu końcowego userProfiles.checkUserCapability z parametrem możliwości CREATE_ADD_ON_ATTACHMENT. Sprawdź pole logiczne allowed w odpowiedzi. Wartość true oznacza, ż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}.')

Kierowanie użytkownika na podstawie jego uprawnień

Uprawnienia określają, 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 nowy CourseWork projekt z adresem URL treści wybranej przez użytkownika 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łączoną treścią. Użytkownicy mogą kliknąć Link, aby otworzyć treści w Twojej witrynie w nowej karcie.

Tworzenie wersji roboczej projektu w narzędziach edukacyjnych CourseWork z materiałem w postaci linku

Rysunek 1. Widok nauczyciela 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 pojawi się w Classroom jako karta załącznika. Adresy URL podane w żądaniu otworzą się w odpowiednim elemencie iframe dla każdego widoku.