Tworzenie załączników poza Google Classroom

W tym przewodniku znajdziesz informacje o tworzeniu załączników dodatków w witrynie lub aplikacji. Interakcje są podobne do tworzenia projektów za pomocą punktów końcowych CourseWork API. Wdróż tę ścieżkę, aby umożliwić użytkownikom tworzenie załączników dodatków na Twojej stronie lub w aplikacji.

Przepływ pracy

Ogólnie proces tworzenia załącznika 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 zadanie CourseWork z adresem URL wybranej treści jako materiałem w postaci 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ć link do wybranej treści, i powiąż go z nowym projektem.
  5. Poinformuj nauczyciela, że projekt został utworzony.

Każda z tych czynności 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 kwalifikującego się użytkownika. Użytkownik, który może korzystać z tej funkcji, to nauczyciel na zajęciach, na których chcesz utworzyć zadania w i ma przypisaną licencję na Google Workspace for Education w wersji Teaching and Learning lub Education Plus.

Zacznij od określenia, 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żytkowników na podstawie ich uprawnień

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

Niekwalifikujący się użytkownik

Jeśli użytkownik nie może tworzyć załączników do dodatków, utwórz nowy CourseWorkprojekt 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 zadanie w wybranym kursie z załączoną treścią. Użytkownicy mogą kliknąć Link, aby otworzyć zawartość w Twojej witrynie w nowej karcie.

Tworzenie wersji roboczej projektu w narzędziach edukacyjnych Course Kit z linkiem do materiału

Rysunek 1. Widok wersji roboczej projektu w CourseWork z materiałem w postaci linku dla nauczyciela.

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 odpowiedniej ramce iframe dla każdego widoku.