Google Apps Scriptがβ版としてv8対応しています。v8版にすると、実行速度が向上するほか、constやasync/awaitといったモダンなJavaScriptで書けるようになります。
しかし、従来のGoogle Apps Script SDKは動作しなくなります。v8版にすると、 ReferenceError: User is not defined
というエラーメッセージが出るようになります。対応を試みたのですが、うまくいきませんでした。
そこで、よりモダンな書き方でv8対応版としてGoogle Apps Script SDKを作り直しています。今回はファイルストアからのダウンロード方法について解説します。
コードについて
コードはNCMBMania/ncmb_gas: Google Apps Script(v8対応版)のコードです。にアップロードしてあります。TypeScriptで書かれています。
コードは google/clasp: 🔗 Command Line Apps Script Projects を使ってGoogle Apps Script用のコードに変換しています。
使い方
スクリプトのIDは 1Z8Lezd0OS6qm9W0EVQxBGx1gztqD14kXPfQxycr_rc2atOfKujiWZe7I
になります。基本的に最新版を使うようにしてください。
初期化
以下はプリフィックスをNCMBとした場合のコードです。
const ncmb = NCMB.init('APPLICATION_KEY', 'CLIENT_KEY');
ダウンロードについて
ファイルのダウンロードは ncmb.File.download
を使ってください。ファイルストアのインスタンスが返ってきます。
const fileName = 'test.png'; const file = ncmb.File.download(fileName);
例えばファイルをGoogle Drive上に書き込む場合、次のように file.blob
を使ってください。ファイルストアからダウンロードしたBlobデータが入っていますので、そのまま書き込めます。
const folderId = '10G...EpX'; const folder = DriveApp.getFolderById(folderId); folder.createFile(file.blob);
まとめ
NCMB機能一覧によるとGoogle Apps Script SDKの実装状況は6割を超えてきました。まだ全機能が実装されている訳ではありませんが、だいたいのニーズは満たせるようになってきたかと思います。
Googleスプレッドシートのタイマートリガーと組み合わせたり、スプレッドシートでマスタメンテナンスをしたりと、様々な使い方が考えられます。ぜひ活用してください。