Topic
是標籤,用於將課程中的 CourseWork
和 CourseWorkMaterial
串流項目分組。通常會使用 Topic
依據相似性將這些項目分類,例如項目指派的週數或主題。使用者可以在 Classroom UI 的「課程作業」檢視畫面中,以視覺化方式整理及篩選訊息串項目。
每個 Topic
都會由伺服器指派的專屬 ID 識別。Topic
資源也包含下列項目:
name
:在 Classroom 使用者介面中顯示的顯示名稱updateTime
:Topic
上次更新的時間courseId
:Topic
關聯的課程 ID
建立主題
您可以使用 topics.create()
方法,在課程中建立新的 Topic
,如以下範例所示:
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
,如以下範例所示:
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']))
更新主題
您可以使用 topics.patch()
方法更新現有的 Topic
name
,如以下範例所示:
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
,如以下範例所示: