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

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

سير العمل

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

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

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

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

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

ابدأ بتحديد ما إذا كان يمكن للمستخدم إنشاء إضافات في 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. إنشاء مرفق إضافة
    • اضبط السمة itemId في 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 المناسب لكل ملف شخصي.