Topic は、コース内の CourseWork と CourseWorkMaterial のストリーム アイテムをグループ化するためのラベルです。通常、Topic は、アイテムが割り当てられた週やアイテムの件名など、類似性に基づいてアイテムを分類するために使用されます。ユーザーは、Classroom UI の [授業] ビューで、ストリーム アイテムを視覚的に整理してフィルタできます。
各 Topic は、サーバーから割り当てられた一意の ID で識別されます。Topic リソースには次のものも含まれています。
name: Classroom UI に表示される表示名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 を削除できます。