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ę. 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 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 osoba, która 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 żądanie 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.

Niekwalifikujący się użytkownik

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 linkiem do materiału

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 otwierają się w odpowiednim elemencie iframe dla każdego widoku.