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

2025年4月25日金曜日

Google ClassroomのAPIで使う courseId の数字を知りたい


Google ClassroomのAPIで生徒を招待しようとした際に、courseId が必要になりました


クラスのURLの末尾にある英数字の文字列が courseId なのかと思ったらちょっと違いました


今回はそれについて調べて試したことを書いていきます


まず第一に、Apps Scriptで使う courseId は数字のみの組み合わせです


その数字を英数の文字列に変換したものがクラスのURLの末尾についている


そのため、 クラスのURLの末尾にある文字列をそのまま courseId としてコードに書くと、数字じゃないのでエラーになる


そこで、 courseId の数字を取得する必要がある


公式リファレンス > Classroom Service > Sample code > List courses にちょうどいいコードがあったので、これを使って courseId の数字を取得してみます




Code.gs
/**
* Lists 10 course names and IDs.
*/
function listCourses() {
/**
* @see https://developers.google.com/classroom/reference/rest/v1/courses/list
*/
const optionalArgs = {
pageSize: 10
// Use other query parameters here if needed.
};
try {
const response = Classroom.Courses.list(optionalArgs);
const courses = response.courses;
if (!courses || courses.length === 0) {
console.log('No courses found.');
return;
}
// Print the course names and IDs of the available courses.
for (const course in courses) {
console.log('%s (%s)', courses[course].name, courses[course].id);
}
} catch (err) {
// TODO (developer)- Handle Courses.list() exception from Classroom API
console.log('Failed with error %s', err.message);
}
}


このコードがやっていること:

自分が指導・参加しているクラス(course) のリストを取得する(optionalArgsの分だけ)
const response = Classroom.Courses.list(optionalArgs);
const courses = response.courses;


そのリストのクラス(course) 毎に、 course の name と id を取得する
for (const course in courses) {
console.log('%s (%s)', courses[course].name, courses[course].id);
}


この courses[course].id が courseId で、実行すると以下のように取得できました


この例では 699141862609 が courseId になります



Reference

Develop Google Classroom apps and integrations
https://developers.google.com/workspace/classroom

Classroom Service > List courses
Method: courses.list

Latest post

Google Formsでセクションの中にタイトルと説明を追加したい(addSectionHeaderItem)

今回はセクションの中に「タイトルと説明を追加」してみます フォームの編集画面 題名と説明を書くブロックが追加されます 今回の例では以下のように入力します 題名: SectionHeader 説明: Please answer the following questions. フォ...