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

2025年4月26日土曜日

Google ClassroomのAPIで生徒を招待したい


ブラウザ上で招待メールを送る方法は Google Classroomに招待メールで参加したい
に書きましたが、今回は Classroom の API を使って生徒を招待する方法について書いていきます


以下の Code.gs で courseId と studentEmails の値を自身の環境に応じて変更して
inviteMultipleStudents() を実行すると、 studentEmails で指定した生徒に招待メールが送信されます


コード内の courseId は数字のみの組み合わせなのですが、これはClassroomの画面上には表示されていない数字で、取得するためにはひと手間必要です




Code.gs
function inviteMultipleStudents() {
const courseId = "1234567890"; // 取得した courseId の数字

const studentEmails = [ // 招待したい生徒のEmail
'student1@example.com',
'student2@example.com'
];

studentEmails.forEach(email => {
const invitation = {
courseId: courseId,
userId: email,
role: 'STUDENT'
};

try {
const result = Classroom.Invitations.create(invitation);
Logger.log(`招待成功 ${email} → Invitation ID: ${result.id}`);
} catch (e) {
Logger.log(`招待失敗 ${email}: ${e.message}`);
}
});
}


実行結果


招待した生徒には、以下のような招待メールが届きます
生徒は「Join class」をクリックするとクラスに参加できるようになります



Tips 1

クラスのURLをそのまま使って招待できないのか?

URLの末尾の文字列は、courseId の数字を base64 でエンコードした値のようなので、以下のようにデコードして数字に戻すことは可能

const courseUrl = "https://classroom.google.com/c/Njk5MTQxODYyNjA5";
const courseIdStr = courseUrl.split('/').pop();
const decodedBytes = Utilities.base64Decode(courseIdStr);
const courseId = Utilities.newBlob(decodedBytes).getDataAsString();

公式のリファレンスにこのやり方は見つからなくて、ChatGPTとやり取りする中で知りました

思いついたのでこのデコードする方法も書いてみましたが、基本的に courseId は API で取得する手順を踏むのが公式に示されている手順です



Tips 2

Google API Explorer に API の実行環境があるようです

Google API Explorer > Classroom > Invitations > create

① Request body に招待に必要な値を入力する
② Execute をクリックする
③ 結果が返ってくる
上記①②③の手順で、実際に指定した生徒を招待することができました

このブラウザ上で API を実験できる環境でも、指定した生徒に実際の招待メールが飛びます

ここで試すのは実際の生徒のメールアドレスではなく、テストアカウントを作って実行したほうが安全です



Tips 3

Reference ページにも API の実行環境があります

Google Classroom > Reference > REST Resources > Invitations > create > API

このページでも API を実行できて、Tips 2 と同様に Request body を入力して Execute をクリックすると、実際に指定した生徒に招待メールを送信することができました



Reference

Method: invitations.create

Try Google Workspace APIs  |  Google for Developers

関連記事



Latest post

Google Classroom API でクラスの一覧を取得したい

自分が指導・参加しているクラスの名称とIDを取得するコードを試しました 下記 Code.gs では pageSize で 100 を設定していますが 必ず 100件 返ってくるとは限らないらしいです https://developers.google.com/workspace/...