GoogleAppsScriptのユーザーとグループの管理に変化が・・・

佐野

佐野 2014年9月30日

※注
当記事の内容は、企業向けGoogleApps用の内容です。
無料アカウントでは、おそらく使用できないと思われます。

GoogleAppsScriptでは、
グループやユーザーの情報も取得・操作する事も可能でしたが、
もうすぐ、その機能も廃止されます。

20140929140042

コード補完を出しても、取り消し線が入っているように、
今は使えても、非推奨という形になっています。

しかし、今後スクリプトでアカウントやグループの管理が
できなくなるというわけではありません。
これらの操作には、別のメソッドが用意されたようでして、
それを利用するには、デベロッパーコンソールにてAPIをONにする必要があります。

使い方は、まずスクリプトエディタ画面で
「リソース」→「Googleの拡張サービス」を選択します。
すると、以下の画面が出るはずです。

20140925171831

じつは、ここで私は大きくつまづいてしまいました。
ここでデベロッパーコンソールから取得したAPIキーを入力するはずなのですが、
どのような方法でAPIキーを取得して、入力しようとも、うまくいきませんでした。
ネット上で調べ、記事を吟味してみても、この画面のスクリーンショットはあれど、
APIキーを入力する項目だけがなかったり。
もしかしたら、その記事を書いた時点では、APIキーを入力する項目はなかったが、
すぐ後に、APIキーを入力する部分が追加されたのかと考えていました。
ところが、実際には逆でした。

その記事を作成した人が使用しているファイルは、
「ドライブ」で、最近作られたファイルだからでした。
じつは私が実験で使っていたのは、いつも使っている古いスクリプトファイルで、
それゆえに、APIキーの入力ボックスが表示されていたのです。

新しく作成したファイルで表示したものが、こちら。

20140930113742

私がネット上で調べて読んだ記事の画像は、まさにこれでした。
この画面から「Google デベロッパー コンソール」の青文字をクリックします。
すると、以下のような画面が表示されます。

20140930113251

「ステータス」の列にあるボタンをクリックすると、
各APIのオン・オフが切り替わります。
画像は「Admin SDK」をオンにした状態です。
グループやアカウントの操作は、この「Admin SDK」で行う事になります。

次に、先ほどのスクリプトファイルの小窓画面に戻り、
「Admin Directory API」と「Admin Reports API」の、
必要なものをONにします。
「Admin Directory API」は主に、グループやアカウントの操作を、
「Admin Reports API」は各ユーザーのログイン履歴といった
レポート抽出に使います。
必要と思われるものをONにしてください。

これで、スクリプトのコード補完にも対応されます。
20140930114825

古いスクリプトファイルでも、APIキーの入力さえうまくいけば使えるかもしれませんが、
けっこう面倒な事になりそうなので、すっぱりあきらめて、
新しいファイルで行うほうが、いいかもしれません。

実際に情報を拾ったり、アカウントの変更を行ったりしてみたのですが、
情報は、以前スクリプトで行ったときよりも、かなり細かな情報まで収集でき、
各ユーザーのログイン時間やIPアドレスまでも収集できるようです。
ただ、メソッドの記述の仕方が、従来までは「UserManager.getAllUsers()」のように、
関数を指定し、その戻り値として各要素のオブジェクトが来る仕組みではなく、
「AdminDirectory.Users.get(“(対象ユーザーのメールアドレス)”)」と組み合わせる事で、
戻り値として各データが集約された連想配列が返ってくるという形になっているようです。

コード補完で表示されるものでも、
組み合わせによって「Bad Request」となるのでクセはあるものの、
従来よりも出来る事が大幅に増えたような気はします。
コード補完はもとより、公式のリファレンスも参考にして、調査していきたいところです。