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şturmasına olanak tanımak için bu yolculuğu uygulayın.

İş akışı

Ek oluşturma yolculuğu genel olarak şu adımdan oluşur:

  1. Bir öğretmen kullanıcı web sitenizi veya uygulamanızı açar. Öğrencilerine atanacak 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 Bağlantı Materyali olarak, seçilen içeriğin URL'sini içeren bir CourseWork ödevi oluşturun.
  4. Kullanıcı eklenti ekleri oluşturabiliyorsa aşağıdakileri yapın:
    1. Ödev oluşturun.
    2. Seçilen içeriğe bağlanan bir eklenti eki oluşturun ve bunu yeni ödevle ilişkilendirin.
    3. Ödevin başarıyla oluşturulduğunu öğretmene bildirin.

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

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

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

Kullanıcının belirli bir Courseda eklenti oluşturup oluşturamayacağını belirleyerek başlayın. Kurs Kimliği 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'sini 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 ekleri oluşturamıyorsa kullanıcı tarafından seçilen içerik URL'si ile Link olarak 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, istenen derste yer alan ve içeriği eklenmiş bir ödev yer alır. Kullanıcılar, sitenizdeki içeriği yeni bir sekmede açmak için Link simgesini tıklayabilir.

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

Şekil 1. Bağlantı Materyali içeren taslak Sınıf Çalışması ödevinin öğretmen görünümü.

Uygun kullanıcı

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

  1. Ek olmadan 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ünüm için uygun iframe'de açılır.