Google Workspace for Educationを使っていて転出した生徒のIDがどうなっているのか確認するためにGASを使って情報を取得しようとしたところ、はまってしまった。
結局、サービスの追加でAdmin SDK APIでAdminDirectoryを追加すればいいのだが、これにバージョンが2つあった。この2つは「reports_v1」と「directory_v1」で、前者を指定してしまっていたので、エラーが出る。
const user = AdminDirectory.Users.get(owner);
でownerにIDを指定すれば、ユーザー情報がuserにはいるはずなのだが、ここで止まる。最初は、何も起こらないで、終了してしまうのでエラーが出ていることさえわからなかった。
まずは、GASの画面から左側の実行数を見て、完了と表示している行をクリックするとエラーが表示される。エラーは
デバッグ エラーが発生しました: Cannot read properties of undefined (reading 'get')
undefinedなので、コードを書き直して、AdminDirectoryのあとに.を打ってもusersが候補に上がってこない。どうもAdminDirectoryがおかしそうだとなって、一番上のプロジェクトの詳細を開いて、一番下にプロジェクトのOAuthスコープを見ると
View usage reports for your G Suite domain で https://www.googleapis.com/auth/admin.reports.usage.readonly なんか変 で、コードに戻って、サービスでAdminDirectoryを消して、登録し直そうとするとバージョンが2つ出てきて選択できることがわかった。
まあたいへんだった。でも、バージョンを「directory_v1」にするとAdminDirectoryのあとに.を打つとちゃんとUsersがでてくる。やはりエディタの予測補完をうまく使うことが大切なことがよくわかった。予測補完できないときは問題があり、設定に問題がある。