Topic — это метка для группировки элементов потока CourseWork и CourseWorkMaterial в рамках курса. Topic обычно используется для категоризации этих элементов по схожести, например, по неделе, на которой они были заданы, или по предмету. Пользователи могут визуально упорядочивать и фильтровать элементы потока в представлении «Задания» в интерфейсе класса.
Каждая Topic идентифицируется уникальным идентификатором, назначаемым сервером. Ресурс Topic также содержит следующую информацию:
-
name: отображаемое имя в пользовательском интерфейсе класса. -
updateTime: время последнего обновленияTopic. -
courseId: идентификатор курса, с которым связанаTopic
Создать тему
Вы можете создать новую Topic в курсе, используя метод topics.create() , как показано в следующем примере:
Ява
Питон
topic = {
"name": 'Example Topic'
}
response = service.courses().topics().create(
courseId=<course ID or alias>,
body=topic).execute()
print('Topic created: ', response['name'])
Поле name всегда обязательно и должно быть непустой строкой. Все остальные поля необязательны.
Получить подробности темы
Вы можете получить конкретную Topic по идентификатору с помощью метода topics.get() , как показано в следующем примере:
Ява
Питон
response = service.courses().topics().get(
courseId=<course ID or alias>,
id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Используйте метод topics.list() для извлечения всех Topic в курсе, как показано в следующем примере:
Ява
Питон
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() , как показано в следующем примере:
Ява
Питон
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']))
Поля id Topic и updateTime генерируются сервером и не могут быть обновлены с помощью API.
Удалить тему
Вы можете удалить существующую Topic с помощью метода topics.delete() , как показано в следующем примере: