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

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

תהליך עבודה

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

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

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

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

אתם יכולים ליצור קבצים מצורפים לתוספים בשם משתמש שעומד בדרישות. משתמש שעומד בדרישות הוא משתמש שהוא מורה בקורס שבו מנסים ליצור מטלות ב'כלי המטלות' וגם יש לו רישיון למהדורת 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('User eligibility for add-on attachment creation: '
      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 כדי לפתוח את התוכן באתר שלכם בכרטיסייה חדשה.

טיוטה של מטלה בכלי המטלות עם חומר לימוד מסוג קישור

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