以下の内容はhttps://relativelayout.hatenablog.com/entry/2020/01/19/000351より取得しました。


技術書典に向けてGoogle Drive上のファイル監視をGASからやってみる(前編)

久々のGAS案件。

ポキオ GoogleAppsScript GAS 技術書典

もうすぐ技術書典ですね(震)

執筆を加速させていきたいところですが、やっぱり締切駆動開発になりがちになってしまって、進歩しないなぁと思う今日このごろです。

ここで、この状況を打破すべく、他の人の進捗を監視して自分を戒めるシステムを構築してみようと思います!そんなシステム構築してる暇があったら、さっさと書けよ!

ポキオ GoogleAppsScript GAS 技術書典

某弊チームの技術書典向け原稿はGoogle Drive上で管理しているので、もしかしたらGoogle Apps Script(GAS)が使えるかもしれない!と思い、いろいろやってみたことをメモしていきます。

developers.google.com

GASで色々な情報をgetしてみる

まずはGoogle Drive上のファイルへのアクセスはDriveAppクラスが使えるはず。

developers.google.com

監視したいファイルやフォルダのIDが分かれば、そのIDから色々の情報が取得できます。

ポキオ GoogleAppsScript GAS 技術書典

たとえば、あるファイルの最終更新日を取得するには、こんな感じでコーディングしていきます。

function myFunction() {
  var id = 'xxxxx'
  var file = DriveApp.getFileById(id)
  Logger.log(file.getLastUpdated())
 }

これを実行すると、権限付与を求められますが、一度付与して実行すると・・・。

ポキオ GoogleAppsScript GAS 技術書典

こんな感じで最終更新日を取得することができます。一方で、技術書典を複数人で執筆していて、その進捗共有用のSpreadsheetの場合、最終更新日とともに誰が更新したのか気になるんですが、その情報はDriveAppクラスでは取得できないのです・・・

ポキオ GoogleAppsScript GAS 技術書典

実はDriveAppクラスとは別に、[リソース] > [Googleの拡張サービス]からDrive APIを有効にするとDriveクラスがGASから叩けるようになります。

developers.google.com

これは、いわゆるGoogle Drive APIで、APIでできることがGASから叩けるようになります。たとえば、先程の最終更新をしたのが誰かを取得するには、このDriveクラスを使っていきます。

function myFunction() {
  var id = 'xxxxx' 
  var file = Drive.Files.get(id)
  Logger.log(file.lastModifyingUserName)
 }

こんな感じ。で、実行すると・・・

ポキオ GoogleAppsScript GAS 技術書典

ちゃんと取得できましたー。(個人名なので伏せてますが・・・)

というわけで

なんとなくGoogle Drive上のファイルの情報を引き出せそうな気がしてきました。今後は、定期的にファイルをポーリングして監視したり、それを何かしらの形で通知する方法を考えていきたいところです。はやく執筆しろ。




以上の内容はhttps://relativelayout.hatenablog.com/entry/2020/01/19/000351より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14