Google Apps for Work の管理をCUIで行う。

Google Apps にはAPIがある。
↓のサイトでどんなAPIがあるのかとか、実際にAPIをWebブラウザ上から実行できたりする。
https://developers.google.com/apis-explorer

さてGoogle Appsで何をしたかったかというと、メールサーバを全面的に切り替えたかった。
メーリングリストもだ。メーリングリストはグループ機能で作成できる。権限を渡せばユーザでも作れる。
便利だ……と思って使い始めたら穴があった。

めっちゃしんどい。

Webブラウザで1つ1つ登録しないといけないし、ユーザ追加するたびに招待メールは出るし。
デフォルトの設定はいちいちいじらないとまともに使えるメーリングリストにならないし。
プレフィックスもデフォルトじゃついてないってどうよ(全体設定もない)

メーリングリスト移行サービスとやらもあるけど、高い。
(だいたいそれだけにお金かけてられるん?)

なのでAPIs Explorerなんてものを探したり、なんとか自前でサーバサイドのスクリプト書こうとしたんだけど、時間と技術がなくて無理。とにかくすぐなんとかしたい!

と思ったらありました。
GAMっていうWindows/Mac/Linux対応のAPI叩くコマンドラインツール。
https://github.com/jay0lee/GAM

最初はCUIしか使う気がなかったのでCUIオンリーのLinuxに入れたら、最終的にブラウザ認証が必要になってつらくなったのでWindows版ではじめました。

https://github.com/jay0lee/GAM/releases
ここからインストーラをダウンロードして展開。

次にGoogleの「client_secrets.json」を手に入れてきます。

GoogleDevelopersConsole
https://console.developers.google.com/project

まあ適当に登録とプロジェクト作って(GoogleはちょくちょくUI変えるからしっかり説明するだけつらいし)
左上の「三」ボタンからメニュー展開して「API Manager」。
Google APIからGAMが対応している下記7つのAPIを検索して有効に。
Admin SDK
Apps Activity API
Calendar API
Drive API
Enterprise License Manager API
Gmail API
Groups Settings API

左側の「認証情報」から「認証情報を追加」で「OAuth2.0クライアントID」を選択。種類は「その他」で作成。名前は適当にして保存。
認証情報の一覧に戻ったら今作ったものの一番右から「JSONをダウンロード」できるので、ダウンロードして「client_secrets.json」に名前を変更してgam.exeのあるフォルダに一緒に入れる。

さらに「認証情報を追加」で「サービス アカウント」を選び「JSON」を選択して作成。
JSONファイルが自動でダウンロードされるのでgam.exeのあるフォルダに「oauth2service.json」に改名して保存。

ここまできたらやっとgam.exeを起動。
「gam info user」と打ち込むとなにやらいろいろ出てくるんだけど「Continue」するために「27」を入力してEnter。
すると短縮URLが出てくるのでそのURLにアクセスして認証。

まだまだ手順がかかる。
「認証情報」のOAuth2.0クライアントIDの「クライアントID」欄をコピー。
Google AppsのAdmin Console(管理画面)に移動します。
http://admin.google.com/

「セキュリティ」のアイコンをクリックし、「もっと見る」から「詳細設定」へ。
「API クライアント アクセスを管理する」を選択し、承認済みAPIクライアントとして、
「クライアント名」にコピーしておいたクライアントIDを、
「1つ以上のAPIの範囲」に下記をカンマ区切りで突っ込んで承認。

https://www.googleapis.com/auth/calendar,
https://mail.google.com/,
https://www.googleapis.com/auth/activity,
https://www.googleapis.com/auth/drive,
https://www.googleapis.com/auth/plus.login,
https://www.googleapis.com/auth/plus.me,
https://www.googleapis.com/auth/siteverification,
https://www.googleapis.com/auth/cloudprint,
https://www.googleapis.com/auth/classroom.rosters,
https://www.googleapis.com/auth/classroom.courses,
https://www.googleapis.com/auth/classroom.profile.emails,
https://www.googleapis.com/auth/classroom.profile.photos,
https://www.googleapis.com/auth/admin.datatransfer,
https://www.googleapis.com/auth/admin.directory.customer,
https://www.googleapis.com/auth/admin.directory.domain

もう一回。「認証情報」のサービスアカウントの「メールアドレス」をクリックすると、次の画面で「クライアントID」が表示されているので、それをコピー。
「クライアント名」にコピーしたクライアントIDを、
「1つ以上のAPIの範囲」に下記を突っ込んで承認。

https://mail.google.com/,
https://www.googleapis.com/auth/activity,
https://www.googleapis.com/auth/calendar,
https://www.googleapis.com/auth/drive

お疲れ様です。これでGAMが使えるようになりました。
コマンド一覧はここから。
https://github.com/jay0lee/GAM/wiki/GAM3DirectoryCommands

たとえばグループを作りたければ、こう。

gam create group ***@ドメイン

メーリングリストとして設定するため、こう。

gam update group ***@ドメイン whoCanJoin “INVITED_CAN_JOIN” allowExternalMembers “true” replyTo “REPLY_TO_LIST” maxMessageBytes “25M” primaryLanguage “ja”
(招待されれば誰でも参加、ドメイン外のユーザ許可、リプライ先をMLに、メッセージサイズは25メガに、使用言語は日本語に)

ユーザを追加するなら、こう。
gam update group ***@ドメイン add member user メールアドレス

特にupdateではAPIs Explorerで変更できない部分も変えられるし(探したらあるのかもだけど)、ファイルでユーザ一括追加もできるし、これでユーザを追加した場合招待メッセージも飛ばない(まあGAMだからってわけじゃないけど)。

すごく便利になりました。あとはバッチファイルを使って一気に。

え? メールの件名のprefix?

APIがないからGAMだろうと何だろうと簡単には変えられないそうです。
むしろAPIがないってことは、どこのどんなサービスでもできないんじゃないですかね?
(有料のAPIにはあったりするのかな?)
がんばってWebブラウザ上でひとつひとつ変えていきましょう。

広告

Google Apps for Work の管理をCUIで行う。」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中