يتيح تطبيق 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.readonlyhttps://www.googleapis.com/auth/classroom.coursework.me
إذا كان المستخدم معلّمًا أو مشرف نطاق، استخدِم أحد النطاقات التالية:
https://www.googleapis.com/auth/classroom.coursework.students.readonlyhttps://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.readonlyhttps://www.googleapis.com/auth/classroom.coursework.students
إذا كان المستخدم طالبًا، استخدِم النطاق التالي:
https://www.googleapis.com/auth/classroom.coursework.me.readonlyhttps://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