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

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

תהליך עבודה

באופן כללי, תהליך יצירת הקובץ המצורף מתבצע לפי הסדר הבא:

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

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

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

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

קודם כול, צריך לבדוק אם המשתמש יכול ליצור קובצי מצורף של תוספים. כדי לעשות זאת, שולחים בקשה לנקודת הקצה userProfiles.checkUserCapability עם פרמטר היכולת CREATE_ADD_ON_ATTACHMENT. בודקים את השדה הבווליאני allowed בתגובה. ערך true מציין שהמשתמש זכאי ליצור קבצים מצורפים של תוספים.

Python

eligibility_response = (
  classroom_service.userProfiles()
  .checkUserCapability(
    userId="me",
    capability="CREATE_ADD_ON_ATTACHMENT",
    # The previewVersion is necessary while the method is available in the
    # Workspace Developer Preview Program.
    previewVersion="V1_20240930_PREVIEW",
  ).execute()
)
is_create_attachment_eligible = (
  eligibility_response.get('allowed')
)
print(f'User eligibility for course {course_id}'
      f': {is_create_attachment_eligible}.')

ניתוב המשתמש על סמך הזכאות שלו

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

משתמש לא כשיר

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