В этом руководстве рассматривается создание дополнительных вложений на вашем веб-сайте или в приложении. Взаимодействия аналогичны созданию заданий с использованием конечных точек API CourseWork . Реализуйте этот путь, чтобы пользователи могли создавать дополнительные вложения с вашего веб-сайта или приложения.
Рабочий процесс
На высоком уровне процесс создания привязанности следует следующей последовательности:
- Пользователь-учитель открывает ваш веб-сайт или приложение. Они выбирают часть контента, чтобы поручить своим ученикам.
- Убедитесь, что пользователь может создавать дополнительные вложения .
- Если пользователь не может создавать дополнительные вложения, создайте задание CourseWork с URL-адресом выбранного контента в качестве материала ссылки.
- Если пользователь может создавать дополнительные вложения, выполните следующие действия:
- Создайте задание.
- Создайте дополнительное вложение, которое ссылается на выбранный контент, и свяжите его с новым заданием.
- Сообщите учителю, что задание создано успешно.
Каждое действие описано в следующих разделах.
Проверьте, может ли пользователь создавать дополнительные вложения
Вы можете создавать дополнительные вложения от имени соответствующего пользователя. Соответствующим пользователем является пользователь, который является преподавателем курса, в котором вы пытаетесь создать задания CourseWork, и которому назначена лицензия на выпуск Teaching & Learning или Education Plus Google Workspace for Education.
Начните с определения того, может ли пользователь создавать дополнительные вложения. Это можно сделать, отправив запрос к конечной точке userProfiles.checkUserCapability
с параметром возможности CREATE_ADD_ON_ATTACHMENT
. Проверьте логическое allowed
поле в ответе; true
значение указывает, что пользователь имеет право создавать дополнительные вложения.
Питон
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}.')
Маршрутизация пользователя в зависимости от его соответствия критериям
Право на участие определяет, можете ли вы создавать дополнительные вложения для пользователя.
Неподходящий пользователь
Если пользователь не может создавать дополнительные вложения, создайте новое задание CourseWork
с URL-адресом выбранного пользователем контента в качестве Link
.
Питон
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")}'
)
Ответ содержит задание по запрошенному курсу с прикрепленным содержимым. Пользователи могут щелкнуть Link
, чтобы открыть содержимое вашего сайта в новой вкладке.
Рис. 1. Представление преподавателя черновика задания CourseWork со ссылкой на материал.
Соответствующий пользователь
Выполните следующие действия, если пользователь может создавать дополнительные вложения.
- Создайте новое задание
CourseWork
без вложений. - Создайте дополнительное вложение.
- Задайте для
itemId
AddOnAttachment
id
вновь созданного назначения. - Обязательно укажите URL-адреса выбранного пользователем контента для каждого поддерживаемого представления .
- Задайте для
Питон
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")}'
)
Дополнение отображается в виде карточки приложения в Классе. URL-адреса, указанные в запросе, открываются в соответствующем iframe для каждого представления .