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

2025年4月26日土曜日

Google Classroomで生徒のEmailをシートから読み込んで招待したい


招待メールを送信する方法について
これまでに以下2つの方法を試しました

  1. Classroom の画面上から生徒を招待する場合: Google Classroomに招待メールで参加したい
  2. コードに生徒のEmailを書き込む場合: Google ClassroomのAPIで生徒を招待したい

今回は生徒のEmailアドレスをスプレッドシートから読み込んで
招待メールを送信する方法について書いていきます




事前準備

スプレッドシートに Students というシートを作って
招待したい生徒の Email をA1セルから必要なだけ入力しておきます




以下の Code.gs にある courseId とsheetUrl を自身の環境に合わせて書き換えて
inviteStudentsFromSheet() を実行すると
StudentsシートのA列に入力されている Emailアドレスに招待メールが送信されます



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行目から取得



Latest post

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

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