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()
, как показано в следующем примере: