Un Topic est un libellé permettant de regrouper les éléments de flux CourseWork et CourseWorkMaterial dans un cours. Un Topic est généralement utilisé pour classer ces éléments par similitude, par exemple la semaine à laquelle ils sont attribués ou leur sujet. Les utilisateurs peuvent organiser et filtrer visuellement les éléments du flux dans la vue Travaux et devoirs de l'interface utilisateur Classroom.
Chaque Topic est identifié par un ID unique attribué par le serveur. La ressource Topic contient également les éléments suivants :
name: nom à afficher dans l'interface utilisateur de ClassroomupdateTime: heure de la dernière mise à jour deTopiccourseId: ID du cours auquel l'Topicest associé
Créer un sujet
Vous pouvez créer un Topic dans un cours à l'aide de la méthode topics.create(), comme illustré dans l'exemple suivant :
Java
Python
topic = {
"name": 'Example Topic'
}
response = service.courses().topics().create(
courseId=<course ID or alias>,
body=topic).execute()
print('Topic created: ', response['name'])
Le champ name est toujours obligatoire et doit être une chaîne non vide. Tous les autres champs sont facultatifs.
Récupérer les détails d'un sujet
Vous pouvez récupérer un Topic spécifique par ID avec la méthode topics.get(), comme illustré dans l'exemple suivant :
Java
Python
response = service.courses().topics().get(
courseId=<course ID or alias>,
id=<topic ID>).execute()
print('{0} ({1})'.format(response['name'], response['topicId']))
Utilisez la méthode topics.list() pour récupérer tous les Topic d'un cours, comme indiqué dans l'exemple suivant :
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']))
Modifier un thème
Vous pouvez mettre à jour un Topic name existant avec la méthode topics.patch(), comme illustré dans l'exemple suivant :
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']))
Les champs Topic id et updateTime sont générés par le serveur et ne peuvent pas être mis à jour avec l'API.
Supprimer un thème
Vous pouvez supprimer un Topic existant avec la méthode topics.delete(), comme indiqué dans l'exemple suivant :