สร้างไฟล์แนบนอก Google Classroom

คู่มือนี้จะอธิบายเกี่ยวกับการสร้างไฟล์แนบของส่วนเสริมในเว็บไซต์หรือแอปพลิเคชัน การโต้ตอบจะคล้ายกับการสร้างงานโดยใช้ CourseWork API ปลายทาง นำเส้นทางนี้ไปใช้เพื่ออนุญาตให้ผู้ใช้สร้างไฟล์แนบของส่วนเสริม จากเว็บไซต์หรือแอปพลิเคชันของคุณ

ขั้นตอนการทำงาน

ในระดับสูง เส้นทางการสร้างไฟล์แนบจะเป็นไปตามลำดับต่อไปนี้

  1. ผู้ใช้ที่เป็นครูเปิดเว็บไซต์หรือแอปของคุณ นักเรียนจะเลือกเนื้อหาบางส่วนเพื่อ มอบหมายให้กับนักเรียน
  2. ตรวจสอบว่าผู้ใช้สร้างไฟล์แนบของส่วนเสริมได้
  3. หากผู้ใช้สร้างไฟล์แนบของส่วนเสริมไม่ได้ ให้สร้าง CourseWork ที่มี URL ไปยังเนื้อหาที่เลือกเป็นเนื้อหาของลิงก์
  4. หากผู้ใช้สร้างไฟล์แนบของส่วนเสริมได้ ให้ทำดังนี้
    1. สร้างงาน
    2. สร้างไฟล์แนบของส่วนเสริมที่ลิงก์ไปยังเนื้อหาที่เลือก และ เชื่อมโยงกับงานใหม่
  5. แจ้งให้ครูทราบว่าสร้างงานเรียบร้อยแล้ว

การดำเนินการแต่ละอย่างมีอธิบายไว้ในส่วนต่อไปนี้

ตรวจสอบว่าผู้ใช้สามารถสร้างไฟล์แนบของส่วนเสริมได้หรือไม่

คุณสามารถสร้างไฟล์แนบของส่วนเสริมในนามของผู้ใช้ที่มีสิทธิ์ได้ ผู้ที่มีสิทธิ์ ผู้ใช้ คือผู้ใช้ที่เป็นครูในหลักสูตรที่คุณพยายามสร้าง งานในหลักสูตรและมีชุดคำสั่งสอนและ Learning หรือ Education Plus ใบอนุญาตรุ่น Google Workspace for Education ที่มอบหมาย

เริ่มต้นด้วยการพิจารณาว่าผู้ใช้จะสร้างส่วนเสริมใน Course ที่ระบุได้หรือไม่ ส่งคำขอไปยังปลายทาง courses.checkAddOnCreationEligibility รวมถึงรหัสหลักสูตร

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

หากผู้ใช้มีสิทธิ์ การตอบกลับจะมีบูลีน ตั้งค่า isCreateAttachmentEligible เป็น true หากผู้ใช้ไม่มีสิทธิ์ การตอบกลับจะไม่แสดงผลบูลีน isCreateAttachmentEligible

กำหนดเส้นทางผู้ใช้ตามการมีสิทธิ์

การมีสิทธิ์จะเป็นตัวกำหนดว่าคุณจะสร้างไฟล์แนบของส่วนเสริมให้ผู้ใช้ได้หรือไม่

ผู้ใช้ที่ไม่มีสิทธิ์

หากผู้ใช้สร้างไฟล์แนบของส่วนเสริมไม่ได้ ให้สร้าง CourseWork ใหม่ ซึ่งมี URL เนื้อหาที่ผู้ใช้เลือกเป็น Link

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

คำตอบมีงานในหลักสูตรที่ขอซึ่งมีเนื้อหา แนบมาด้วย ผู้ใช้สามารถคลิก Link เพื่อเปิดเนื้อหาในเว็บไซต์ใน

งานฉบับร่างของงานในหลักสูตรพร้อมเนื้อหาลิงก์

รูปที่ 1 มุมมองของครูสำหรับงานในหลักสูตรฉบับร่าง พร้อมเนื้อหาของลิงก์

ผู้ใช้ที่มีสิทธิ์

ทำตามขั้นตอนต่อไปนี้หากผู้ใช้สามารถสร้างไฟล์แนบของส่วนเสริมได้

  1. สร้างงาน CourseWork ใหม่โดยไม่มีไฟล์แนบ
  2. สร้างไฟล์แนบของส่วนเสริม

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

ส่วนเสริมจะปรากฏเป็นการ์ดไฟล์แนบใน Classroom URL ที่ระบุไว้ในคำขอเปิดใน iframe สำหรับข้อมูลพร็อพเพอร์ตี้แต่ละรายการ