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:
- Nauczyciel otwiera Twoją witrynę lub aplikację. Wybiera treści do przydzielenia uczniom.
- Sprawdź, czy użytkownik może tworzyć załączniki dodatków.
- Jeśli użytkownik nie może utworzyć załączników dodatków, utwórz projekt CourseWork z adresem URL wybranych treści jako materiałem linkowanym.
- 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ązać go z nowym projektem.
- Poinformuj nauczyciela, że zadanie zostało utworzone.
Każde działanie jest opisane w następnych 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 użytkownik, który jest nauczycielem na zajęciach, w ramach których chcesz tworzyć zadania CourseWork, oraz ma przypisaną licencję 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 pole logiczne 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(f'User eligibility for course {course_id}'
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 CourseWork
przypisanie 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 projekt w żądanym kursie z dołączonymi treściami. Użytkownicy mogą kliknąć Link
, aby otworzyć zawartość Twojej witryny w nowej karcie.
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.
- Utwórz nowy projekt
CourseWork
bez załączników. - utworzyć załącznik dodatku;
- Ustaw
itemId
AddOnAttachment
naid
nowo utworzonego zadania. - Pamiętaj, aby w przypadku każdej obsługiwanej widoku podać adresy URL treści wybranych przez użytkownika.
- 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 określone w prośbie otwierają się w odpowiednim ramce iframe dla każdej widoczności.