Classroom の課題には以下のようなファイルを添付することができます
- ドライブ
- YouTube
- 作成
- アップロード
- リンク
作成できるファイル
- ドキュメント
- スライド
- スプレッドシート
- 図形描画
- フォーム
今回はGoogleドライブのファイルとYouTubeとWebページのリンクを添付するコードを試してみました
下記 Code.gs の courseId, driveFileId, youtubeId, linkUrl を自身の環境に合わせて書き換えて
createAssignmentWithAllAttachments() を実行すると
courseId で指定したクラスに課題の下書きが作成されます
Code.gs
function createAssignmentWithAllAttachments() {
const courseId = '776967326029'; // ここにクラスIDを入力
const driveFileId = '12345676890abcdefghijklmn'; // Google ドライブのファイルID
const youtubeId = 'XMCZE8tYAVU'; // YouTubeのビデオID(URLではない)
const linkUrl = 'https://edu.google.com/intl/en_ALL/workspace-for-education/products/classroom/'; // 添付するウェブリンク
const materials = [
{
driveFile: {
driveFile: {
id: driveFileId,
alternateLink: `https://drive.google.com/file/d/${driveFileId}/view`
},
shareMode: 'STUDENT_COPY'// VIEW, EDIT, STUDENT_COPY
}
},
{
link: {
url: linkUrl
}
},
{
youtubeVideo: {
id: youtubeId
}
}
];
const courseWork = {
title: 'Create a course in Google Classroom',
description: 'Discover how to design your course with essential elements.',
materials: materials,
workType: 'ASSIGNMENT',
state: 'DRAFT'
};
try {
const created = Classroom.Courses.CourseWork.create(courseWork, courseId);
Logger.log(`課題作成成功: ID = ${created.id}`);
} catch (e) {
Logger.log('課題作成失敗: ' + e.message);
}
}
実行後に作成される課題の下書きに添付ファイルが追加される
Tips 1
すでに作成されている課題への添付ファイル追加は API でサポートされていないようです
これかな
Tips 2
上記の Code.gs の shareMode: 'STUDENT_COPY' では「各生徒にコピーを作成」になります
画面上での選択肢は
- 生徒がファイルを閲覧できる: VIEW
- 生徒がファイルを編集できる: EDIT
- 各生徒にコピーを作成: STUDENT_COPY
Reference
Method: courses.courseWork.create
REST Resource: courses.courseWorkMaterials
ShareMode
AssigneeMode
Method: courses.courseWork.patch
関連記事