Posted at

Google Apps Scriptをローカルで開発する

More than 3 years have passed since last update.


そんなことができるのか?

A. できるようになりました。(以前からできていたんだろうと思われるが…)

Google Developer Relations Teamのblogでローカルで開発するための環境構築についての記事が投稿されました。

Apps Scriptによる高度な開発プロセス

ということで、早速(でもないですけど…)試してみました。


環境構築


node.jsをインストールする。

私はnodebrewを使っているので、参考記事をおいておきます。

http://qiita.com/sinmetal/items/154e81823f386279b33c

バージョンはv0.12.x以降なら動作するようです。


node-google-apps-scriptをインストールする。


コマンド

$ npm install -g node-google-apps-script


エラーが出なければOK


Apps Scriptのプロジェクトを作る。

最初に、Google Driveの任意のフォルダでGoogle Apps Scriptのファイルを作るか、Container-bound Scriptを作って下さい。

(Container-bound Script=Document/Spreadsheet/Formに紐付いたAppsScriptのこと)


Apps ScriptのAPIキーを作る。

リソース→Developers Console プロジェクト…を選択する。

DeveloperConsoleプロジェクトの選択.png

Developer Consoleを表示ボタンを押して、コンソールを表示

DevelopersConsoleを表示.png

APIManagerを選択する。

APIManager.png

Google Drive APIを有効にしておいて下さい。(ローカルからソースコードを更新するときにAPIを利用するからです)

メニューからCredentialsを選択し、Create credentialsボタンを押す。その時に、OAuth IDを選択する。

OAuthIDを選択.png

APIKeyの種類を聞かれるのでOtherを選択する。この時の名前はなんでも良いです。

Otherを選択.png

APIKeyが作れたら、一番右にある矢印と棒線のアイコンをクリックしてjsonファイルをダウンロードしてください。このjsonファイルをおローカルのAppsScriptのプロジェクトにコピーしておきます。(jsonファイルはどこにあってもいいです。)


実は、APIKeyはどのプロジェクトのものでも良いのでは?

ソースコードをダウンロードしてくるところまでしか確認していませんが、Apps Scriptのプロジェクトと関係ないプロジェクトのAPIKeyでも問題なさそうです。(要検証)


gappsコマンドを使って認証

node-google-apps-scriptに含まれているgappsコマンドで認証します。


コマンド

$ cd <ローカルのディレクトリ>

$ gapps auth ./client_secret_<your_client_id>.json


gappsコマンドでローカルのプロジェクトを初期化

initコマンドを実行するとローカルにsrcディレクトリが作られて、コード.jsができていると思います。(新規作成した状態だと、myFunctionだけが定義されています)


コマンド

$ gapps init <DriveにあるファイルID>



本日のコード.gsではなく、ローカルだと.jsになるみたい。


コード.js

function myFunction() {

Logger.log("ローカルで開発!");
}


Google Driveにpush


コマンド

$ gapps upload



スクリプトエディタで実行

スクリプトエディタを開くとソースコードが反映されているはずです。実行して下さい。


ローカルで開発するときの弱点?

スクリプトエディタだと、補完が効くのですが、ローカルだと効かせるのが難しいのかなーと思ったりしていますが、これも要検証だと思います。


Disclaimer


  • この記事は個人的なものです。私の雇用者とは全く関係はありません。(一応つけておきます)