پیوست‌هایی را خارج از 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 نشان می‌دهد که کاربر واجد شرایط ایجاد پیوست‌های افزونه است.

پایتون

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 ایجاد کنید.

پایتون

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 کلیک کنند تا محتوا در سایت شما در یک تب جدید باز شود.

پیش نویس تکلیف دوره به همراه لینک مطالب

شکل ۱. نمای معلم از پیش‌نویس یک تکلیف درسی به همراه لینک مطالب.

کاربر واجد شرایط

اگر کاربر می‌تواند پیوست‌های افزونه ایجاد کند، موارد زیر را انجام دهید.

  1. یک تکلیف CourseWork جدید بدون هیچ پیوستی ایجاد کنید.
  2. یک پیوست افزونه ایجاد کنید.

پایتون

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 مناسب برای هر View باز می‌شوند.