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 interfejsu 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:
- Nauczyciel otwiera Twoją witrynę lub aplikację. Wybiera treści, które chce przypisać uczniom.
 - Sprawdź, czy użytkownik może tworzyć załączniki dodatków.
 - 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.
 - Jeśli użytkownik może tworzyć załączniki dodatków, wykonaj te czynności:
- Utwórz projekt.
 - Utwórz załącznik dodatku, który będzie zawierać link do wybranej treści, i powiąż go z nowym projektem.
 
 - 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 dodatkowe.
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 tworzyć załączniki dodatków dla użytkownika.
Nieuprawniony 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 na nowej karcie.

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.
- Utwórz nowy projekt 
CourseWorkbez załączników. - Utwórz załącznik dodatku.
- Ustaw 
AddOnAttachmentitemIdnaidnowo utworzonego przypisania. - Upewnij się, że podajesz adresy URL treści wybranych przez użytkownika dla każdego obsługiwanego widoku.
 
 - Ustaw 
 
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.