Topic
是用于对课程中的 CourseWork
和 CourseWorkMaterial
串流内容进行分组的标签。Topic
通常用于按相似性对这些内容进行分类,例如内容分配的周数或主题。用户可以在 Google 课堂界面的作业视图中直观地整理和过滤信息流内容。
每个 Topic
都由服务器分配的唯一 ID 进行标识。Topic
资源还包含以下内容:
name
:Google 课堂界面中显示的显示名称updateTime
:Topic
上次更新的时间courseId
:Topic
关联的课程的 ID
创建主题
您可以使用 topics.create()
方法在课程中创建新的 Topic
,如以下示例所示:
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
字段始终是必需字段,且必须为非空字符串。所有其他字段均为可选字段。
检索主题详情
您可以使用 topics.get()
方法按 ID 检索特定的 Topic
,如以下示例所示:
Java
Python
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
,如以下示例所示:
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']))
更新主题
您可以使用 topics.patch()
方法更新现有的 Topic
name
,如下例所示:
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 进行更新。
删除主题
您可以使用 topics.delete()
方法删除现有 Topic
,如以下示例所示: