【GAS】クラスルームAPIを使って課題・質問を自動配布する方法!

GASを使ってクラスルームに「質問の作成」をする方法について質問がありましたので、勉強も兼ねて作ってみました。

今回の記事は、私とGPT-4とのやり取りをもとにAIが作成したものです。

テストはしていますが、GASを実行する際は、自己責任で行なってください。

Google ClassroomとGoogle Apps Scriptを活用して授業を効率化する方法

Google Classroomは教育の現場で広く利用されていますが、Google Apps Script(GAS)を組み合わせることで、その利便性をさらに高めることができます。この記事では、GASを使ってClassroom APIにアクセスし、課題の配布やクラスIDの取得などを自動化する方法を紹介します。対象者は、プログラミングに慣れていない先生方です。

Google Classroom APIの基本

Google Classroom APIを使用すると、Google Classroomのデータにプログラムからアクセスし、クラスの管理や課題の配布などを自動化することができます。APIを活用するための第一歩として、Google Cloud Platform(GCP)でAPIを有効にし、OAuth同意画面を設定する必要があります。

記述式の質問を行うコード

function createQuestion() {
  var courseId = 'あなたのクラスID'; // 適切なクラスIDに置き換えてください
  var courseWork = {
    title: '質問タイトル',
    description: 'ここに質問の内容を記述します。',
    workType: 'SHORT_ANSWER_QUESTION',
    state: 'PUBLISHED',
    studentCanEditAttachment: true, // 提出後の編集を可能にする
    submissionsOpenTo: 'ALL_CLASSMATES', // クラスメイトの返信を可能にする
  };
  
  try {
    var response = Classroom.Courses.CourseWork.create(courseWork, courseId);
    Logger.log(response);
  } catch (e) {
    Logger.log(e.toString());
  }
}

選択式の質問を行うコード

// 質問(選択式)を公開状態で作成します
function createCourseWorkAsMultipleChoiceQuestion() {
  const courseId = "あなたのクラスID"; // 適切なクラスIDに置き換えてください
  const question = {
    title: "質問(選択式)の作成",
    description: "スクリプトで質問(選択式)を作成します。ここに質問文を記述します。例: 「今日の授業のめあて(目標)はわかりましたか?」",
    state: "PUBLISHED", // 公開状態に設定
    maxPoints: 100, // 数値型でポイントを設定
    workType: "MULTIPLE_CHOICE_QUESTION",
    multipleChoiceQuestion: {
      choices: [
        "わかりました",
        "わかりません",
        "どちらともいえません"
      ]
    }
  };
  const coursework = Classroom.Courses.CourseWork.create(question, courseId);
  Logger.log("courseWork created : %s (%s)", coursework.title, coursework.workType);
}

課題を自動で配布するコード

以下のステップで課題を自動配布するスクリプトを設定できます:

  1. GCPでプロジェクトを設定:APIを有効にし、OAuth同意画面を設定します。
  2. GASでスクリプトを作成:新しいGASプロジェクトを開き、課題配布のスクリプトを記述します。
  3. スクリプトを実行:スクリプトを実行して、Google Classroomに課題を配布します。

課題配布の例:

function createAssignment() {
  var courseId = 'あなたのクラスID';
  var courseWork = {
    title: 'テスト送信',
    description: 'ここに説明を書きます。',
    materials: [
      {link: {url: 'https://example.com'}},
    ],
    workType: 'ASSIGNMENT',
    state: 'PUBLISHED',
  };
  
  Classroom.Courses.CourseWork.create(courseWork, courseId);
}


クラスIDを簡単に取得するコード

クラスIDは、Google Classroomで特定のクラスを指定するために必要です。以下のスクリプトを実行することで、自分がアクセスできる全てのクラスの名前とIDを取得できます:

function listCourses() {
  var courses = Classroom.Courses.list();
  if (courses.courses.length == 0) {
    Logger.log('No courses found.');
  } else {
    for (var i = 0; i < courses.courses.length; i++) {
      var course = courses.courses[i];
      Logger.log('%s (%s)', course.name, course.id);
    }
  }
}

まとめ

Google Apps Scriptを使ってGoogle Classroomの機能を拡張することは、教育の現場での作業効率を大きく向上させることができます。この記事で紹介した方法を活用して、授業の準備や管理をもっとスムーズに進めましょう。

最後まで読んでいただき、ありがとうございました。

PS:日々有益な情報を発信していますので、TwitterのフォローとYoutubeのチャンネル登録をお願いします。この世の先生アカウント全部フォローする勢いでフォローしまくっていますが、副業や投資を進めるアカウントじゃないのでご安心ください。

https://www.youtube.com/@Tozakichi

シェアしていただけると嬉しいです!
  • URLをコピーしました!

この記事を書いた人

福岡の小学校教員 8年目 / 社会科の授業にICTを活用 / GEG Chikuhoリーダー /初心者向けICT研修講師/ 福岡社会科教育実践学会・日本教育工学会所属 / WordPressでICT活用術を発信 / 動画編集・デザイン・Web記事作成・論文執筆・楽曲制作も

コメント

コメントする

CAPTCHA