LoginSignup
1
2

More than 3 years have passed since last update.

GoogleClassroomAPIを使うときに『ReferenceError: Classroom is not defined』とエラーが出て困った話

Last updated at Posted at 2021-01-31

こんにちは!GoogleAppsScriptを使った業務効率化に夢中の初心者プログラマー、太郎です。
Google Classroom APIを使いたいと思い、公式ドキュメントに載っている以下のテストコードを入力したのですが、、、
(自分が所属しているクラスルームの名前とIDを10個取得するコードです。)

/**
 * Lists 10 course names and ids.
 */
function listCourses() {
  var optionalArgs = {
    pageSize: 10
  };
  var response = Classroom.Courses.list(optionalArgs);
  var courses = response.courses;
  if (courses && courses.length > 0) {
    for (i = 0; i < courses.length; i++) {
      var course = courses[i];
      Logger.log('%s (%s)', course.name, course.id);
    }
  } else {
    Logger.log('No courses found.');
  }
}

こんなエラーが起きてしまいます。
ReferenceError: Classroom is not defined
参照エラー:クラスルーム定義されていません
スクリーンショット (29).png

『はっ???Classroomが定義されてないってどういうこと?ClassroomはClassroomでしょ!』とプログラミング初心者の私には早くも意味ぷーさん(もはや死語、、、)な状況が訪れたわけですが、公式ドキュメントにしっかりやり方が載っていました。

どうも、ClassroomのAPIは使用できるように拡張しないと使用できないようです。
『なんでスプレッドシートとかはそのまま使えるんだよ!?』ここにもプログラミング初心者にとっての発狂ポイントがあるのですが、もうそういうものだと諦めましょう。

拡張の仕方はコチラ。
GoogleAppsScriptの編集画面で『サービスを追加』をクリック
スクリーンショット (23)_LI.jpg

APIを追加できる画面が出てくるのでGoogle Classroom APIを選択して追加
スクリーンショット (25).png

サービスの下に「Classroom」と表示されているのを確認してください。

これでClassroom APIが使えるようになりました!
再度プログラムを実行してみると、
スクリーンショット (30).png

無事、自分の所属しているクラス名とIDを取得できました。

なお、組織としてG suiteを利用している場合、外部サービスのAPIを勝手に利用できないような設定になっているケースもあり、その場合はシステムの管理部に問い合わせないとClassroomのAPIは使用できません。

ClassromのAPIに関しての日本語の情報が少ないので、今後も引き続き発信していきたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2