يتيح تطبيق Classroom ثلاثة أنواع من عناصر ساحة المشاركات:
CourseWork
وCourseWorkMaterials
وAnnouncements
. يوضّح هذا الدليل كيفية إدارة CourseWork
، ولكن واجهات برمجة التطبيقات الخاصة بجميع عناصر البث متشابهة. يمكنك الاطّلاع على مراجع واجهة برمجة التطبيقات لمعرفة المزيد عن أنواع عناصر البث واختلافاتها.
يمثّل المورد CourseWork
مهمة تم تعيينها للطلاب في صف معيّن، بما في ذلك أي مواد وتفاصيل إضافية، مثل تاريخ التسليم أو الحد الأقصى للنتيجة. هناك أربعة أنواع فرعية من CourseWork
:
المهام ومهام الاختبارات وأسئلة الإجابات القصيرة وأسئلة الخيارات المتعددة. تتيح Classroom API ثلاثة من هذه الأنواع الفرعية، وهي: المهام والأسئلة ذات الإجابات القصيرة والأسئلة ذات الخيارات المتعدّدة. يتم تمثيل هذه الأنواع من خلال الحقل
CourseWork.workType
.
بالإضافة إلى المرجع CourseWork
، يمكنك إدارة العمل المكتمل باستخدام المرجع StudentSubmission
.
Create CourseWork
لا يمكن إنشاء CourseWork
إلا نيابةً عن معلّم الدورة التدريبية.
ستؤدي محاولة إنشاء CourseWork
نيابةً عن طالب أو مشرف نطاق ليس معلّمًا في الدورة التدريبية إلى ظهور الخطأ PERMISSION_DENIED
. اطّلِع على أنواع المستخدمين لمعرفة المزيد عن الأدوار المختلفة في Classroom.
عند إنشاء CourseWork
باستخدام طريقة courses.courseWork.create
، يمكنك إرفاق روابط كـ materials
، كما هو موضّح في نموذج الرمز البرمجي أدناه:
Java
Python
يجب ملء الحقلَين title
وworkType
. جميع الحقول الأخرى اختيارية.
إذا لم يتم تحديد state
، سيتم إنشاء CourseWork
في حالة مسودة.
استخدِم مرجع رابط مع هدف محدّد
url
لتضمين مواد مرتبطة في CourseWork
. يجلب Classroom تلقائيًا title
وعنوان URL الخاص بالصورة المصغّرة (thumbnailUrl
). تتوافق Classroom API أيضًا بشكلٍ أصلي مع مواد Google Drive وYouTube، والتي يمكن تضمينها باستخدام مورد DriveFile أو مورد YouTubeVideo بطريقة مماثلة.
لتحديد تاريخ استحقاق، اضبط الحقلَين dueDate
وdueTime
على وقت التوقيت العالمي المنسق (UTC) المناسب. يجب أن يكون تاريخ الاستحقاق في المستقبل.
يتضمّن الرد CourseWork
معرّفًا يحدّده الخادم ويمكن استخدامه للإشارة إلى عملية التعيين في طلبات أخرى من واجهة برمجة التطبيقات.
استرداد CourseWork
يمكنك استرداد CourseWork
نيابةً عن الطلاب والمعلّمين في الدورة التدريبية المعنية. يمكنك أيضًا استرداد CourseWork
نيابةً عن مشرفي النطاق، حتى إذا لم يكونوا معلّمين في الدورة التدريبية. لاسترداد CourseWork
معيّن، استخدِم courses.courseWork.get
. لاسترداد جميع
CourseWork
(مع مطابقة بعض المعايير اختياريًا)، استخدِم
courses.courseWork.list
.
يعتمد النطاق المطلوب على الدور الذي يملكه المستخدم الذي يقدّم الطلب في الدورة التدريبية. إذا كان المستخدم طالبًا، استخدِم أحد النطاقات التالية:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
إذا كان المستخدم معلّمًا أو مشرف نطاق، استخدِم أحد النطاقات التالية:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
إنّ الحصول على إذن باسترداد CourseWork
لا يعني الحصول على أذونات للوصول إلى المواد أو البيانات الوصفية الخاصة بها. يعني ذلك عمليًا أنّه قد لا يظهر عنوان ملف Drive مرفق للمشرف إذا لم يكن عضوًا في الدورة التدريبية.
إدارة ردود الطلاب
يمثّل مرجع StudentSubmission
العمل الذي أنجزه الطالب في CourseWork
. يتضمّن المرجع بيانات وصفية ذات صلة بالعمل، مثل حالة العمل والدرجة. يتم إنشاء StudentSubmission
ضمنيًا
لكل طالب عند إنشاء CourseWork
جديد.
توضّح الأقسام التالية الإجراءات الشائعة التي تدير ردود الطلاب.
استرداد ردود الطلاب
يمكن للطلاب استرداد المهام التي أرسلوها، ويمكن للمعلّمين استرداد المهام التي أرسلها جميع الطلاب في دوراتهم التدريبية، ويمكن لمشرفي النطاق استرداد جميع المهام التي أرسلها جميع الطلاب في نطاقهم. يتم تخصيص معرّف لكل StudentSubmission
. إذا كنت تعرف المعرّف، استخدِم
courses.courseWork.studentSubmissions.get
لاسترداد الطلب.
استخدِم طريقة courses.courseWork.studentSubmissions.list
للحصول على جميع موارد StudentSubmission
التي تتطابق مع بعض المعايير، كما هو موضّح في المثال التالي:
Java
Python
يمكنك استرداد موارد StudentSubmission
تخص طالبًا معيّنًا من خلال تحديد المَعلمة userId
، كما هو موضّح في المثال التالي:
Java
Python
يتم تحديد الطلاب من خلال المعرّف الفريد أو عنوان البريد الإلكتروني، كما هو موضّح في مرجع
Student
. يمكن للمستخدم الحالي أيضًا الإشارة إلى رقم التعريف الخاص به باستخدام الاختصار "me"
.
يمكن أيضًا استرداد المهام التي أرسلها الطلاب لجميع المهام الدراسية ضمن إحدى الدورات التدريبية. لإجراء ذلك، استخدِم القيمة الحرفية "-"
كـ courseWorkId
، كما هو موضّح في المثال التالي:
Java
service.courses().courseWork().studentSubmissions()
.list(courseId, "-")
.set("userId", userId)
.execute();
Python
service.courses().courseWork().studentSubmissions().list(
courseId=<course ID or alias>,
courseWorkId='-',
userId=<user ID>).execute()
يعتمد النطاق المطلوب على الدور الذي يملكه المستخدم الذي يقدّم الطلب في الدورة التدريبية. إذا كان المستخدم معلّمًا أو مشرف نطاق، استخدِم النطاق التالي:
https://www.googleapis.com/auth/classroom.coursework.students.readonly
https://www.googleapis.com/auth/classroom.coursework.students
إذا كان المستخدم طالبًا، استخدِم النطاق التالي:
https://www.googleapis.com/auth/classroom.coursework.me.readonly
https://www.googleapis.com/auth/classroom.coursework.me
لا يعني الحصول على إذن باسترداد StudentSubmission
توفّر أذونات للوصول إلى المرفقات أو البيانات الوصفية الخاصة بها. يعني ذلك عمليًا أنّه قد لا يظهر عنوان ملف Drive مرفق للمشرف إذا لم يكن عضوًا في الدورة التدريبية.
إضافة مرفقات إلى ردّ الطالب
يمكنك إرفاق روابط بمهمة أرسلها طالب من خلال إرفاق مرجع Link
أو DriveFile
أو YouTubeVideo
. يتم ذلك باستخدام
courses.courseWork.studentSubmissions.modifyAttachments
، كما هو موضّح في المثال التالي:
Java
Python
يتم تحديد المرفق Link
من خلال الهدف url
، ويجلب Classroom تلقائيًا title
والصورة المصغّرة (thumbnailUrl
). راجِع Material
للتعرّف على المواد التي يمكن إرفاقها بـ StudentSubmissions
.
لا يمكن تعديل StudentSubmission
إلا من قِبل معلّم الدورة التدريبية أو الطالب الذي يملكها. لا يمكنك إرفاق Materials
إلا إذا كانت
CourseWorkType
الخاصة بـ StudentSubmission
هي ASSIGNMENT
.
يعتمد النطاق المطلوب على الدور الذي يملكه المستخدم الذي يقدّم الطلب في الدورة التدريبية. إذا كان المستخدم معلّمًا، استخدِم النطاق التالي:
https://www.googleapis.com/auth/classroom.coursework.students
إذا كان المستخدم طالبًا، استخدِم النطاق التالي:
https://www.googleapis.com/auth/classroom.coursework.me