Google Classroom dışında ek oluşturma

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

İş akışı

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

  1. Bir öğretmen kullanıcı, web sitenizi veya uygulamanızı açar. Öğrencilere atanacakları bir içerik seçer.
  2. Kullanıcının eklenti ekleri oluşturabildiğinden emin olun.
  3. Kullanıcı eklenti eki oluşturamıyorsa seçilen içeriğin URL'sini Bağlantı Materyali olarak içeren bir CourseWork ödevi 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 ve bunu yeni ödevle ilişkilendiren bir eklenti eki oluşturun.
  5. Öğretmene ödevin başarıyla oluşturulduğunu bildirin.

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

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

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

Kullanıcının belirli bir Course'da eklenti oluşturup oluşturamayacağını belirleyerek başlayın. Kurs Kimliği de dahil olmak üzere courses.checkAddOnCreationEligibility uç noktasına bir istek gönderin.

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

Kullanıcı uygunsa yanıt, true olarak ayarlanmış boole isCreateAttachmentEligible değerini içerir. Kullanıcı uygun değilse yanıt, isCreateAttachmentEligible boole değerini döndürmez.

Kullanıcıyı uygunluk durumuna göre yönlendirin

Uygunluk, bir kullanıcı için eklenti ekleri 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'sini Link olarak içeren yeni bir CourseWork ataması 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, talep edilen dersteki içeriğin ekli olduğu bir ödev yer alır. Kullanıcılar Link simgesini tıklayarak sitenizdeki içeriği yeni bir sekmede açabilir.

Bağlantı Materyali ile sınıf çalışması ödevi taslağı oluşturun

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

Uygun kullanıcı

Kullanıcı eklenti ekleri 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 bir Görünüm için uygun iframe'de açılır.