GoogleAppsScript

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

More than 1 year has 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

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