教師は Classroom でストリーム アイテムをコピーできます。これにより、ストリーム アイテムに含まれるアドオンの添付ファイルもコピーされます。これにより、教師は複数のセクションや、各学年の新しいセクションの学習コンテンツを作成する際に、多くの時間を節約できます。
教師が Classroom でストリーム アイテムをコピーすると、コピーされたストリーム アイテムの courseId、itemId、attachmentId クエリ パラメータは、元のストリーム アイテムとは異なります。
コンテンツをコピーする方法
以降のセクションでは、教師が Classroom でストリーム アイテムをコピーする方法について説明します。
コースをコピーする
コースをコピーすると、コース内のすべてのストリーム アイテムが新しいコースに下書きとしてコピーされます。教師は、新しいコースに登録した生徒にストリーム アイテムを公開できます。生徒は元のコースとコピーされたコースの両方に登録されている場合があります。これは、生徒が留年したり、クラスを再受講したりした場合に発生することがあります。
図 1. 教師は、Classroom の縦の点線メニューに移動して [コピー] をクリックすることで、コースをコピーできます。次に、教師はポップアップでコースの詳細を指定してコピーできます。
ストリーム アイテムを複数のコースに公開する
教師は、ストリーム アイテムの作成ページから、複数のコースにストリーム アイテムを公開できます。生徒が両方のコースに登録している可能性があります。

図 2. 教師は、ストリーム アイテムの作成ページのサイドバーにあるプルダウンをクリックして複数のコースを選択することで、複数のコースにストリーム アイテムを公開できます。
投稿を再利用する
教師は、[授業] タブに移動して [作成] をクリックすることで、投稿を再利用できます。プルダウンから [投稿を再利用] をクリックしてクラスを選択し、再利用するストリーム アイテムを選択します。

図 3. 教師は、[授業] タブから投稿の再利用フローを開始し、[投稿を再利用] をクリックできます。
図 4. [投稿を再利用] をクリックすると、教師はクラスと再利用するストリーム アイテムを選択できます。
予想される動作
コースまたはストリーム アイテムがコピーされると、同じ生徒に同じアドオン添付ファイルが異なるコースに割り当てられることがあります。iframe にエラーが表示されてはなりません。コピーされたストリーム アイテム内のアドオンの推奨動作は次のとおりです。
- 教師が
teacherViewUriで添付ファイルをプレビューできることを確認します。- 教師が新しいコースに対して追加の設定を行う必要がある場合は、教師に適切な対応を知らせるわかりやすいメッセージを表示します。
- 生徒に
studentViewUriで新しいアドオンの添付ファイルが表示されることを確認します。- コンテンツ タイプの添付ファイルの場合、これは生徒が
studentViewUriで見ることができるようにコンテンツを表示することを意味します。 - アクティビティ タイプ添付ファイルの場合、これは添付ファイルが不完全であることを意味します。生徒は別のコースの回答を確認できません。
- 同じ生徒が添付ファイルを 2 回完了できないアドオンの場合は、シナリオや問題を解決するためのパスを説明するわかりやすいメッセージを表示します。
- コンテンツ タイプの添付ファイルの場合、これは生徒が
- 教師がコピーしたストリーム アイテムの生徒の提出物を
studentWorkReviewUriで確認できるようにします。教師は、別のコースの添付ファイルに対する生徒の提出物を表示できないようにする必要があります。
教師に表示される画面の iframe
教師が teacherViewUri を起動すると、attachmentId は courseId、itemId、itemType、login_hint に加えてクエリ パラメータとして送信されます(ユーザーがすでにアプリを承認している場合)。attachmentId を使用すると、iframe に正しい添付ファイルを表示できます。
teacherViewUri にクエリ パラメータのレコードがない場合は、AddOnAttachment リソースの CopyHistory オブジェクトを使用して、元のストリーム アイテムを特定できます。その後、teacherViewUri に正しい添付ファイルを表示できます。
生徒に表示される画面の iframe
生徒が studentViewUri を起動すると、courseId、itemId、itemType、login_hint に加えて、attachmentId がクエリ パラメータとして送信されます(ユーザーがすでにアプリを承認している場合)。ストリーム アイテムまたはコースがコピーされたときに studentViewUri をレンダリングするには、次の 2 つのパラメータを使用します。
attachmentId。これはリクエスト URL から取得できます。submissionId。これは、itemTypeに基づいて適切なcourseWork.getAddOnContext、courseWorkMaterials.getAddOnContext、announcements.getAddOnContextメソッドを呼び出し、StudentContextオブジェクトを読み取ることで取得できます。
attachmentId は、添付ファイルの一意の識別子です。ただし、submissionId が一意であるとは限りません。そのため、コピーまたは再利用されたストリーム アイテムの attachmentId は異なりますが、submissionId は同じままになる可能性があります。生徒が studentViewUri を起動すると、attachmentId と submissionId の複合キーに基づいて生徒の課題を特定し、添付ファイルを表示できます。
submissionId のみに基づいて studentViewUri をレンダリングすると、submissionId の一意性が保証されないため、生徒に別のコースの提出物が表示される可能性があります。
前述のように、attachmentId を特定できない場合は、AddOnAttachment リソースの CopyHistory オブジェクトを使用して、元のストリーム アイテムとそのクエリ パラメータを特定できます。
生徒の課題の確認用 iframe
教師が studentWorkReviewUri を起動すると、courseId、itemId、itemType に加えて、attachmentId と submissionId がクエリ パラメータとして送信されます。これらのクエリ パラメータを使用すると、指定された attachmentId を特定できない場合に AddOnAttachment リソースまたは CopyHistory リソースを取得できます。これにより、attachmentId と submissionId の複合キーを使用して生徒の課題を検索できます。