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,如以下示例所示: