יצירת קבצים מצורפים מחוץ ל-Google Classroom

במדריך הזה מוסבר איך ליצור קבצים מצורפים של תוספים באתר או באפליקציה. האינטראקציות דומות ליצירת מטלות באמצעות נקודות הקצה ב-CourseWork API. כדאי להטמיע את התהליך הזה כדי לאפשר למשתמשים ליצור קבצים מצורפים של תוספים מהאתר או מהאפליקציה.

תהליך העבודה

ככלל, תהליך יצירת הקבצים המצורפים מתבצע ברצף הבא:

  1. מורה פותח את האתר או את האפליקציה שלכם, ובוחר קטע תוכן להקצות לתלמידים.
  2. מוודאים שהמשתמש יכול ליצור קבצים מצורפים של תוספים.
  3. אם המשתמש לא יכול ליצור קבצים מצורפים של תוספים, צריך ליצור מטלה ב-CourseWork עם כתובת ה-URL של התוכן שנבחר בתור חומר קישור.
  4. אם המשתמש יכול ליצור קבצים מצורפים של תוספים, מבצעים את הפעולות הבאות:
    1. יוצרים מטלה.
    2. אפשר ליצור קובץ מצורף של תוסף שמקשר לתוכן שנבחר ומשייך אותו למטלה החדשה.
    3. עליכם להודיע למורה שהמטלה נוצרה בהצלחה.

כל פעולה מתוארת בקטעים הבאים.

לבדוק אם משתמש יכול ליצור קבצים מצורפים של תוספים

אפשר ליצור קבצים מצורפים של תוספים בשם משתמש שעומד בדרישות. משתמש שעומד בדרישות הוא מורה בקורס שבו מנסים ליצור מטלות ב-CourseWork, ושמוקצה לו רישיון למהדורת Google Workspace for Education: Teaching & Learning או Education Plus.

קודם כול צריך לקבוע אם המשתמש יכול ליצור תוספים ב-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. תצוגה למורה של טיוטה של מטלה ב-CourseWork עם תוכן של קישור.

משתמש שעומד בדרישות

מבצעים את הפעולות הבאות אם המשתמש יכול ליצור קבצים מצורפים של תוספים.

  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 המתאים לכל תצוגה מפורטת.