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