招待メールを送信する方法について
これまでに以下2つの方法を試しました
- Classroom の画面上から生徒を招待する場合: Google Classroomに招待メールで参加したい
- コードに生徒のEmailを書き込む場合: Google ClassroomのAPIで生徒を招待したい
今回は生徒のEmailアドレスをスプレッドシートから読み込んで
招待メールを送信する方法について書いていきます
事前準備
スプレッドシートに Students というシートを作って
inviteStudentsFromSheet() を実行すると
StudentsシートのA列に入力されている Emailアドレスに招待メールが送信されます
courseId を取得する方法: Google ClassroomのAPIで使う courseId の数字を知りたい
Code.gs
function inviteStudentsFromSheet() {
const courseId = "1234567890"; // ← 自分のクラスの courseId に置き換えてください
const sheetUrl = "https://docs.google.com/spreadsheets/d/SPREADSHEET_ID"; // ← 事前準備で用意したシートのURL
const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName("Students");
const studentEmails = sheet.getRange(1, 1, sheet.getLastRow()).getValues().flat();
studentEmails.forEach(email => {
if (!email || typeof email !== "string") return; // 空白・不正チェック
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}`);
}
});
}
Tips
シートの1行目にヘッダ行を入れる場合
A列の2行目から取得するようにコードを書き換えます
const lastRow = sheet.getLastRow();
const studentEmails = sheet.getRange(2, 1, lastRow - 1).getValues().flat(); // ← 2行目から取得
Reference
Method: invitations.create