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

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

תהליך העבודה

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

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

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

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

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

קודם כל צריך לקבוע אם המשתמש יכול ליצור תוספים ב-Course נתון. שולחים בקשה לנקודת הקצה (endpoint) 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 כדי לפתוח את התוכן באתר בכרטיסייה חדשה.

טיוטה של מטלה ב-CourseWork עם חומר קישור

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