Google Classroom dışında ek oluşturma

Bu kılavuzda, web sitenizde veya uygulamanızda eklenti ekleri oluşturma hakkında bilgi verilmektedir. 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 izin vermek için bu yolculuğu uygulayın.

İş akışı

Genel olarak ek oluşturma yolculuğu şu sırayı izler:

  1. Öğretmen kullanıcı, web sitenizi veya uygulamanızı açar. Öğrencilerine atamak için bir içerik seçer.
  2. Kullanıcının eklenti ekleri oluşturabildiğini kontrol edin.
  3. Kullanıcı eklenti eki oluşturamıyorsa, seçili içeriğin URL'sini Bağlantı Materyali olarak içeren bir Ödev oluşturun.
  4. Kullanıcı eklenti eki oluşturabiliyorsa aşağıdakileri yapın:
    1. Ödev oluşturun.
    2. Seçilen içeriğe bağlantı veren bir eklenti eki oluşturun ve bu eki yeni ödevle ilişkilendirin.
  5. Öğretmene ödevin başarıyla oluşturulduğunu 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 kullanıcı, Ödevler 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ış olan kullanıcıdır.

Kullanıcının eklenti eki oluşturup oluşturamayacağını belirleyerek başlayın. Bunu, CREATE_ADD_ON_ATTACHMENT özellik parametresini kullanarak userProfiles.checkUserCapability uç noktasına istek göndererek yapabilirsiniz. Yanıttaki boole 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(f'User eligibility for course {course_id}'
      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 ekleri oluşturamıyorsa kullanıcı tarafından seçilen içerik URL'sini Link olarak içeren 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ıt, istenen kurstaki içeriğin eklendiği bir ödev içerir. Kullanıcılar, sitenizdeki içeriği yeni bir sekmede açmak için Link simgesini tıklayabilir.

Bağlantı materyali içeren taslak CourseWork ödevi

Şekil 1. Bağlantı içeren bir ders ödevi taslağının öğretmen görünümü.

Uygun kullanıcı

Kullanıcı eklenti eki oluşturabiliyorsa aşağıdakileri yapın.

  1. Ek içermeyen yeni 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, her görüntüleme için uygun iframe'de açılır.