LoginSignup
52
52

More than 5 years have passed since last update.

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

Posted at

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

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
52