Google Classroom dışında ek oluşturma

Bu kılavuzda, web sitenizde veya uygulamanızda eklenti ekleri oluşturma konusu ele alınmaktadır. Etkileşimler, CourseWork API uç noktalarını kullanarak ödev oluşturmaya benzer. Kullanıcıların web sitenizden veya uygulamanızdan eklenti ekleri oluşturmasına olanak tanımak için bu süreci uygulayın.

İş akışı

Genel olarak, ek oluşturma süreci şu sırayı izler:

  1. Bir öğretmen kullanıcısı web sitenizi veya uygulamanızı açar ve öğrencilerine atamak için bir içerik seçer.
  2. Kullanıcının eklenti ekleri oluşturabildiğinden emin olun.
  3. Kullanıcı eklenti ekleri oluşturamıyorsa seçilen içeriğin URL'sini Bağlantı Materyali olarak kullanarak bir Ödev oluşturun.
  4. Kullanıcı, eklenti eki oluşturabiliyorsa aşağıdaki adımları uygulayın:
    1. Ödev oluşturun.
    2. Seçili içeriğe bağlanan bir eklenti eki oluşturun ve bunu yeni ödevle ilişkilendirin.
  5. Ödevin başarıyla oluşturulduğunu öğretmene bildirin.

Her işlem aşağıdaki bölümlerde açıklanmıştır.

Kullanıcının eklenti eki oluşturup oluşturamayacağını kontrol etme

Uygun bir kullanıcı adına eklenti ekleri oluşturabilirsiniz. Uygun bir kullanıcı, ve CourseWork ödevleri oluşturmaya çalıştığınız kursta öğretmen olan ve kendisine Teaching & Learning veya Education Plus Google Workspace for Education sürümü lisansı atanmış bir kullanıcıdır.

Kullanıcının eklenti eki oluşturup oluşturamayacağını belirleyerek başlayın. Bunu, CREATE_ADD_ON_ATTACHMENT özelliği parametresiyle userProfiles.checkUserCapability uç noktasına istek göndererek yapabilirsiniz. Yanıtın boolean allowed alanını inceleyin. true değeri, kullanıcının eklenti ekleri oluşturmaya uygun olduğunu gösterir.

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}.')

Kullanıcıyı uygunluğuna göre yönlendirme

Uygunluk, bir kullanıcı için eklenti eki oluşturup oluşturamayacağınızı belirler.

Uygun olmayan kullanıcı

Kullanıcı eklenti eki oluşturamıyorsa, kullanıcı tarafından seçilen içerik URL'sinin Link olarak eklendiği yeni bir CourseWork ödevi oluşturun.

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")}'
  )

Yanıtta, istenen kurstaki bir ödev ve eklenmiş içerik yer alıyor. Kullanıcılar, sitenizdeki içeriği yeni bir sekmede açmak için Link simgesini tıklayabilir.

Materyal Bağlantısı içeren taslak CourseWork ödevi

1.şekil Bağlantı Materyali içeren bir CourseWork ödevinin taslağının öğretmen görünümü.

Uygun kullanıcı

Kullanıcı eklenti eki oluşturabiliyorsa aşağıdaki adımları uygulayın.

  1. Eksiz bir CourseWork ödevi oluşturun.
  2. Eklenti eki oluşturun.

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")}'
  )

Eklenti, Classroom'da ek kartı olarak görünür. İstekte belirtilen URL'ler, uygun her bir görünüm için iFrame'de açılır.