Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2025年5月2日金曜日

Google ClassroomのAPIで添付ファイル付きの課題を作成したい


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


関連記事


Latest post

Google Classroom APIで資料を作成してみる

指定したクラスに資料を作成するコードを試してみました Classroomの画面上では「授業 > 作成 > 資料」で作れます 下記 Code.gs の courseId, title, description を自身の環境に合わせて書き換えて createMateria...