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

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

سير العمل

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

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

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

تأكَّد مما إذا كان بإمكان المستخدم إنشاء مرفقات الإضافات

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

ابدأ بتحديد ما إذا كان بإمكان المستخدم إنشاء مرفقات الإضافات. يمكنك إجراء ذلك عن طريق إرسال طلب إلى نقطة النهاية userProfiles.checkUserCapability باستخدام مَعلمة الإمكانية CREATE_ADD_ON_ATTACHMENT. افحص حقل allowed المنطقي في الردّ، تشير القيمة true إلى أنّ المستخدم مؤهَّل لإنشاء مرفقات الإضافات.

Python

eligibility_response = (
  classroom_service.userProfiles()
  .checkUserCapability(
    userId="me",
    capability="CREATE_ADD_ON_ATTACHMENT",
    # The previewVersion is necessary while the method is available in the
    # Workspace Developer Preview Program.
    previewVersion="V1_20240930_PREVIEW",
  ).execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('allowed')
)
print('User eligibility for add-on attachment creation: '
      f'{is_create_attachment_eligible}.')

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

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

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

إذا تعذّر على المستخدم إنشاء مرفقات الإضافات، أنشئ مهمة 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. أنشئ مرفق إضافة.
    • اضبط AddOnAttachment في itemId على 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 المناسب لكل طريقة عرض.