FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

GAS SDKでファイルストアからダウンロードする

f:id:mbaasdevrel:20190222161342p:plain

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スプレッドシートのタイマートリガーと組み合わせたり、スプレッドシートでマスタメンテナンスをしたりと、様々な使い方が考えられます。ぜひ活用してください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。