Google共有ドライブの運用に便利なGAS
こちらの記事で、Google共有ドライブを社内ファイルストレージとして運用するノウハウを紹介しました。
しかし、共有ドライブの作成やメンバ変更を都度管理コンソールから手動で対応するのはかなり大変です。
Google共有ドライブの運用を楽にする以下の3つのGASを作成しました。
・Google共有ドライブを一括作成するGAS
・Google共有ドライブのメンバを一括変更するGAS
・Google共有ドライブの権限一覧を出力するGAS
いずれもDrive API v2を使用しています。
Google共有ドライブを作成、メンバを変更するGAS
それぞれの処理を同じスプレッドシートの別シートで実装しています。
こちらのGASをスクリプトエディタに貼り付けてください。
それでは使い方を説明します。
■Google共有ドライブを作成するGAS
以下のフォーマットのスプレッドシートを作成し、シート名を「共有ドライブ作成」としておきます。
[Name]には作成する共有ドライブの名前をセットします。
その右の4カラムは、共有ドライブの設定に対応しているのでtrue/falseをセットします。
いずれもtrueにすると制限がかかります。
※日本語の説明とは逆のになっているので注意
・adminManagedRestrictions
→管理者が共有ドライブの設定を変更できるようにする
・domainUsersOnly
→組織外のユーザーにファイルへのアクセス権を付与できるようにする
・driveMembersOnly
→共有ドライブのメンバーではないユーザーにファイルへのアクセス権を
付与できるようにする
・copyRequiresWriterPermission
→閲覧者とコメント可の閲覧者にファイルのダウンロード、印刷、コピー
を許可する
[Result]は実行結果がセットされるので、ブランクにしておいてください。
スクリプトを実行すると、[Result]がブランクのレコードのみを対象として共有ドライブが順に作成されていきます。
【注意】
116行目で共有ドライブの設定を更新する[Drives.update]を実行していますが、なぜか値が反映されません。
エラーも返ってこないのでAPIの問題なのかコードの問題なのか切り分けできていませんが、現状では共有ドライブの設定は反映されないので、お手数ですが共有ドライブ作成後にGUIから設定変更をお願いします。
※解決法がお分かりの方は教えていただけると助かります
■Google共有ドライブのメンバを変更するGAS
上記の共有ドライブ一括作成のスプレッドシートの中に、「共有ドライブ権限変更」というシートを追加します。
追加したシートに、以下の列を作成してください。
[TargetDriveName]にはメンバ変更対象のチームドライブ名称をセットします。
[Member]には追加/削除したいメンバのメールアドレスをセットします。
[Action]には追加する場合は[add]、削除したい場合は[remove]をセットしてください。
[Role]ではメンバ追加する場合の権限を指定します。
以下のいずれかをセットしてください。
organizer : 管理者
fileOrganizer : コンテンツ管理者
writer : 投稿者
commenter : 閲覧者(コメント可)
reader : 閲覧者
なお、メンバ削除の場合は権限は関係ないですが、便宜上いずれかの値をセットしておいてください。
[Result]は先ほどと同様で、ブランクのレコードのみが対象となり、実行結果がセットされます。
Google共有ドライブの権限一覧を出力するGAS
こちらは@ryosukさんが作成したGASをほぼそのまま流用させていただきました。
https://qiita.com/ryosuk/items/8fdcd606d94e89e156ed
以下の点だけ変更させていただいております。
・出力項目にチームドライブIDを追加
・メンバ出力のmaxResultsが40だったのを無制限に変更
・セル内カンマのトリム処理を追加
使い方もQiita記事の通り、スプレッドシートとGASを用意してトリガー実行を仕込むだけです。
GASを実行すると、以下のように各共有ドライブの権限×メンバのマトリックスが出力されます。
おわりに
Google共有ドライブの設定は、管理コンソールから実施しようとすると動線が悪かったりレスポンスが遅かったりして効率が悪いので、頻繁に変更が発生するようであればこのようなGASを用意して一括で処理できるようにしておくと楽になります。