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