یک Topic برچسبی برای گروهبندی آیتمهای جریان CourseWork و CourseWorkMaterial در یک دوره است. یک Topic معمولاً برای دستهبندی این آیتمها بر اساس شباهت، مانند هفتهای که آیتمها اختصاص داده شدهاند یا موضوع آنها، استفاده میشود. کاربران میتوانند آیتمهای جریان را به صورت بصری در نمای Classwork از رابط کاربری Classroom سازماندهی و فیلتر کنند.
هر Topic (Topic) توسط یک شناسه (ID) منحصر به فرد که توسط سرور اختصاص داده میشود، شناسایی میشود. منبع Topic همچنین شامل موارد زیر است:
-
name: نام نمایشی که در رابط کاربری کلاس درس نمایش داده میشود. -
updateTime: آخرین باری کهTopicبهروزرسانی شده است -
courseId: شناسه دورهای کهTopicبه آن مرتبط است.
ایجاد یک موضوع
شما میتوانید با استفاده از متد 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 همیشه الزامی است و باید یک رشته غیر خالی باشد. سایر فیلدها اختیاری هستند.
جزئیات موضوع را بازیابی کنید
شما میتوانید یک Topic خاص را بر اساس شناسه (ID) با استفاده از متد topics.get() بازیابی کنید، همانطور که در نمونه زیر نشان داده شده است:
جاوا
پایتون
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']))
بهروزرسانی یک موضوع
شما میتوانید name یک Topic موجود را با استفاده از متد topics.patch() بهروزرسانی کنید، همانطور که در نمونه زیر نشان داده شده است:
جاوا
پایتون
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 بهروزرسانی کرد.
حذف یک موضوع
شما میتوانید یک Topic موجود را با استفاده از متد topics.delete() حذف کنید، همانطور که در نمونه زیر نشان داده شده است: