2023-10-24

GAS: Google Classroomの受講生のメールアドレスを取得する

Pythonのサンプルは既に挙げていますが、GAS版も。。やっぱりこちらのほうがコードもスッキリします。



2023-10-16

Python: GoogleのAuth認証の仕組みを理解する

すぐ忘れてしまうのでメモ書き。Googleのサービスにアクセスする際には、次の手順が必要です。なお、本記事は、GoogleClassroomAPI を利用する過程での処理なので、適時読み替えてください。

Google Cloud コンソールの設定と認証ファイルの作成
まずは、Google Cloudコンソールで、GoogleClassroomAPIを使えるようにしないといけません。詳細の手続きは、公式サイトを参照してください。ここで、大切なのは

  • Google Cloudプロジェクトを作成しておく(以下、全てこのプロジェクト内での操作になります)
  • Google Classroom API を有効にする(利用したいAPIをONにしましょう。細かな権限設定もできます)
  • 「APIとサービス」のところで認証情報に移動し、認証ファイルを作成しダウンロード
Google クライアントPythonライブラリのインストール
先程の公式サイトに書いてあるので、pip でインストールしましょう。

サンプルコードの実行
下記は、公式サイトの一部を抜粋したものです。ここで理解しておくべきことは、認証ファイルとトークンファイルについてです。
  • 認証ファイルは上記でダウンロードしたファイルです。コード内のcredentials.jsonに相当します
  • トークンファイルは、このコードを実行することで生成されるファイルです。このコードを実行するとブラウザが立ち上がり、認証を求められます。認証を済ませると、token.jsonファイルが作成されます。このトークンファイルは古くなると使えなくなるので定期的に消して書き換えることになるのだと思います
注意点
トークンファイル(token.json)は、スコープに関係しています。Google Cloud コンソールにてプロジェクトで扱えるスコープを設定したと思いますが、クライアント側(コード内)でも指定しないといけません。それが、コード内でのSCOPES変数に相当します。下記のサンプルでは、1つだけ指定してますが、配列として複数指定することは可能です。ここに書いたSCOPESに対応したトークンファイルが出来上がることになります。ですので、SCOPESを変更するときは、トークンファイルを消して再度生成し直してください。



2023-10-01

GAS:GoogleシートのデータからGoogleフォーム(選択肢問題)を生成する

 講義で選択肢問題を準備する機会が増えてきたので作ってみました。GASです。Googleシートに

  • 問題文
  • 正解選択肢文字
  • 得点
  • 選択肢‥
というならびでシートに作成しておき、下記のGASを動かせば作成できます。注意点は、このサンプルでは、正解選択肢の設定に、正解選択肢文字列との比較を用いていることです。補足すると、このケースでは、選択肢として「アイウエ」という選択肢ラベルのみを用意しています。(アイウエが何を表しているのは問題別紙に書いているということです)

ですので、もし選択肢を単なるアイウエではなく、文字列にしたいなら、2列目は世界選択肢文字ではなく、正解選択肢が何番目なのかを記述して、コードも修正したほうがいいです。(機会があれば、そのバージョンも用意します)