إنشاء مرفقات خارج Google Classroom

يتناول هذا الدليل إنشاء مرفقات الإضافات في موقعك الإلكتروني أو تطبيقك. تتشابه التفاعلات مع إنشاء مهام باستخدام نقاط نهاية CourseWork API. يمكنك تنفيذ هذه الرحلة للسماح للمستخدمين بإنشاء مرفقات الإضافات من موقعك الإلكتروني أو تطبيقك.

سير العمل

على مستوى عالٍ، تتبع رحلة إنشاء المرفق هذا التسلسل:

  1. يفتح أحد المعلّمِين موقعك الإلكتروني أو تطبيقك، ويختار جزءًا من المحتوى لتخصيصه لطلابه.
  2. تحقَّق من أنه يمكن للمستخدم إنشاء مرفقات الإضافات.
  3. إذا لم يتمكّن المستخدم من إنشاء مرفقات للإضافة، يمكنك إنشاء واجب CourseWork باستخدام عنوان URL للمحتوى المحدَّد باعتباره "مادة رابط".
  4. إذا كان بإمكان المستخدم إنشاء مرفقات الإضافات، يُرجى اتّباع الخطوات التالية:
    1. أنشئ مهمة دراسية.
    2. قم بإنشاء مرفق إضافة يرتبط بالمحتوى المحدد وربطه بالمهمة الجديدة.
    3. يُرجى إبلاغ المعلّم بأنّه تم إنشاء المهمة بنجاح.

ويتم توضيح كل إجراء في الأقسام التالية.

التحقُّق مما إذا كان يمكن للمستخدم إنشاء مرفقات الإضافات

يمكنك إنشاء مرفقات الإضافات نيابةً عن مستخدم مؤهَّل. المستخدم المؤهَّل هو معلّم في الدورة التدريبية التي تحاول إنشاء مهام CourseWork فيها ويمنحه ترخيص الإصدار Teaching & Learning أو Education Plus من إصدار Google Workspace for Education.

ابدأ بتحديد ما إذا كان يمكن للمستخدم إنشاء إضافات في Course معيّنة. يمكنك إصدار طلب إلى نقطة النهاية courses.checkAddOnCreationEligibility، بما في ذلك رقم تعريف الدورة التدريبية.

Python

eligibility_response = (
  classroom_service.courses()
  .checkAddOnCreationEligibility(courseId=course_id)
  .execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('isCreateAttachmentEligible')
)
print(f'User eligibility for course {eligibility_response.get("courseId")}'
      f': {is_create_attachment_eligible}.')

إذا كان المستخدم مؤهَّلاً، سيحتوي الرد على القيمة المنطقية isCreateAttachmentEligible التي تمّ ضبطها على true. وإذا لم يكن المستخدم مؤهَّلاً، لن يعرض الردّ القيمة المنطقية isCreateAttachmentEligible.

توجيه المستخدم استنادًا إلى أهليته

تحدّد الأهلية ما إذا كان بإمكانك إنشاء مرفقات الإضافات لمستخدم.

مستخدم غير مؤهَّل

إذا لم يتمكّن المستخدم من إنشاء مرفقات الإضافات، يمكنك إنشاء مهمة CourseWork جديدة مع عنوان URL للمحتوى الذي اختاره المستخدم على أنّه Link.

Python

if not is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Link Material',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
    'materials': [
      {'link': {'url': my_content_url}}
    ]
  }

  assignment = (
    service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Link Material assignment created with ID: {assignment.get("id")}'
  )

يحتوي الرد على مهمة في الدورة التدريبية المطلوبة مع المحتوى المرفق. ويمكن للمستخدمين النقر على Link لفتح المحتوى في موقعك الإلكتروني في علامة تبويب جديدة.

مسودة مهمة CourseWork باستخدام مادة الرابط

الشكل 1. طريقة عرض المعلِّم لمسودّة مهمة في CourseWork تتضمّن "مواد الرابط".

مستخدم مؤهَّل

يُرجى تنفيذ ما يلي إذا كان بإمكان المستخدم إنشاء مرفقات الإضافات.

  1. إنشاء مهمة CourseWork جديدة بدون أي مرفقات
  2. إنشاء مرفق إضافة
    • يجب ضبط postId في AddOnAttachment على id للمهمة الجديدة التي تم إنشاؤها.
    • تأكّد من توفير عناوين URL للمحتوى الذي اختاره المستخدم لكل ملف شخصي تدعمه.

Python

if is_create_attachment_eligible:
  coursework = {
    'title': 'My CourseWork Assignment with Add-on Attachment',
    'description': 'Created using the Classroom CourseWork API.',
    'workType': 'ASSIGNMENT',
    'state': 'DRAFT',  # Set to 'PUBLISHED' to assign to students.
    'maxPoints': 100,
  }

  assignment = (
    classroom_service.courses()
    .courseWork()
    .create(courseId=course_id, body=coursework)
    .execute()
  )

  print(
    f'Empty assignment created with ID: {assignment.get("id")}'
  )

  attachment = {
    'teacherViewUri': {'uri': teacher_view_url},
    'studentViewUri': {'uri': student_view_url},
    'studentWorkReviewUri': {'uri': grade_student_work_url},
    'title': f'Test Attachment {test_label}',
  }

  add_on_attachment = (
    service.courses()
    .courseWork()
    .addOnAttachments()
    .create(
      courseId=course_id,
      itemId=assignment.get("id"),  # ID of the new assignment.
      body=attachment,
    )
    .execute()
  )

  print(
    f'Add-on attachment created with ID: {add_on_attachment.get("id")}'
  )

تظهر الإضافة في شكل بطاقة مرفق في Classroom. تفتح عناوين URL المحددة في الطلب في إطار iframe المناسب لكل ملف شخصي.