Topic — это метка для группировки элементов потока CourseWork и CourseWorkMaterial в рамках курса. Topic обычно используется для классификации этих элементов по сходству, например, по неделе, когда они были назначены, или по их предмету. Пользователи могут визуально организовывать и фильтровать элементы потока в представлении «Курсовые работы» пользовательского интерфейса Classroom.
Каждая Topic идентифицируется уникальным идентификатором, присвоенным сервером. Ресурс Topic также содержит следующее:
-
name: Отображаемое имя в пользовательском интерфейсе класса. -
updateTime: Время последнего обновленияTopic. -
courseId: Идентификатор курса, с которым связана даннаяTopic.
Создать тему
Создать новую Topic в курсе можно с помощью метода topics.create() , как показано в следующем примере:
Java
Python
topic = {
"name": 'Example Topic'
}
response = service.courses().topics().create(
courseId=<course ID or alias>,
body=topic).execute()
print('Topic created: ', response['name'])
Поле name всегда обязательно и должно содержать непустую строку. Все остальные поля необязательны.
Получить подробную информацию по теме
Получить доступ к конкретной Topic по ID можно с помощью метода topics.get() , как показано в следующем примере:
Java
Python
response = service.courses().topics().get(
courseId=<course ID or alias>,
id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Для получения всех Topic курса используйте метод topics.list() , как показано в следующем примере:
Java
Python
topics = []
page_token = None
while True:
response = service.courses().topics().list(
pageToken=page_token,
pageSize=30,
courseId=<course ID or alias>).execute()
topics.extend(response.get('topic', []))
page_token = response.get('nextPageToken', None)
if not page_token:
break
if not topics:
print('No topics found.')
else:
print('Topics:')
for topic in topics:
print('{0} ({1})'.format(topic['name'], topic['topicId']))
Обновить тему
Вы можете обновить name существующей Topic с помощью метода topics.patch() , как показано в следующем примере:
Java
Python
topic = {
"name": "New Topic Name"
}
response = service.courses().topics().patch(
courseId=<course ID or alias>,
id=<topic ID>,
updateMask="name",
body=topic).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Поля Topic id и updateTime генерируются сервером и не могут быть обновлены с помощью API.
Удалить тему
Удалить существующую Topic можно с помощью метода topics.delete() , как показано в следующем примере: