Google Classroom の外部で添付ファイルを作成する

このガイドでは、ウェブサイトまたはアプリケーションでアドオンの添付ファイルを作成する方法について説明します。 操作は、CourseWork API を使用した課題の作成と似ています。 提供します。このジャーニーを実装して、ユーザーがアドオンの添付ファイルを作成できるようにする 取得する必要があります

ワークフロー

アタッチメントの作成手順は次のとおりです。

  1. 教師のユーザーがウェブサイトまたはアプリを開きます。コンテンツを選択して 割り当てます。
  2. ユーザーがアドオン添付ファイルを作成できることを確認します
  3. ユーザーがアドオンの添付ファイルを作成できない場合は、CourseWork を作成する。 選択したコンテンツへの URL がリンク マテリアルとして送信されます。
  4. ユーザーがアドオンの添付ファイルを作成できる場合は、次の操作を行います。 <ph type="x-smartling-placeholder">
      </ph>
    1. 課題を作成します。
    2. 選択したコンテンツにリンクするアドオンの添付ファイルを作成し、 新しい課題に関連付けます。
  5. 課題が正常に作成されたことを教師に伝えます。

各アクションについては、次のセクションで説明します。

ユーザーがアドオンの添付ファイルを作成できるかどうかを確認する

対象ユーザーに代わってアドオンの添付ファイルを作成できます。有効な ユーザーは、作成しようとしているコースの教師であるユーザーです および Teaching and Learning UpgradeLearning または Education Plus Google Workspace for Education エディションのライセンスが割り当てられている。

まず、ユーザーが特定の Course でアドオンを作成できるかどうかを判断します。 courses.checkAddOnCreationEligibility エンドポイントにリクエストを発行します。 コース ID が含まれます。

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. アドオンの添付ファイルを作成します。
    • AddOnAttachmentitemId を、新しく作成したサービスの id に設定します。 割り当てます。
    • ビューごとに、ユーザーが選択したコンテンツの URL を指定する サポートします

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