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);
}
}
このコードがやっていること:
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