Ein Topic ist ein Label zum Gruppieren von CourseWork- und CourseWorkMaterial-Stream-Elementen in einem Kurs. Ein Topic wird in der Regel verwendet, um diese Elemente nach Ähnlichkeit zu kategorisieren, z. B. nach der Woche, in der die Elemente zugewiesen werden, oder nach dem Thema. Nutzer können Stream-Elemente in der Ansicht Kursarbeit der Classroom-Benutzeroberfläche visuell organisieren und filtern.
Jede Topic wird durch eine eindeutige ID identifiziert, die vom Server zugewiesen wird. Die Topic-Ressource enthält außerdem Folgendes:
name: Der Anzeigename, der in der Classroom-Benutzeroberfläche angezeigt wirdupdateTime: Der Zeitpunkt der letzten Aktualisierung derTopiccourseId: Die ID des Kurses, dem dieTopiczugeordnet ist
Thema erstellen
Sie können ein neues Topic in einem Kurs mit der Methode topics.create() erstellen, wie im folgenden Beispiel gezeigt:
Java
Python
topic = {
"name": 'Example Topic'
}
response = service.courses().topics().create(
courseId=<course ID or alias>,
body=topic).execute()
print('Topic created: ', response['name'])
Das Feld name ist immer erforderlich und muss ein nicht leerer String sein. Alle anderen Felder sind optional.
Themendetails abrufen
Sie können ein bestimmtes Topic anhand der ID mit der Methode topics.get() abrufen, wie im folgenden Beispiel gezeigt:
Java
Python
response = service.courses().topics().get(
courseId=<course ID or alias>,
id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Mit der Methode topics.list() können Sie alle Topic in einem Kurs abrufen, wie im folgenden Beispiel gezeigt:
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']))
Thema aktualisieren
Sie können ein vorhandenes Topic name mit der Methode topics.patch() aktualisieren, wie im folgenden Beispiel gezeigt:
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']))
Die Felder Topic, id und updateTime werden serverseitig generiert und können nicht über die API aktualisiert werden.
Thema löschen
Sie können eine vorhandene Topic mit der Methode topics.delete() löschen, wie im folgenden Beispiel gezeigt: