Help us understand the problem. What is going on with this article?

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

  • この記事は個人的なものです。私の雇用者とは全く関係はありません。(一応つけておきます)
ttyokoyama
GDG Okayama Organizer たまにGoogle関連の技術の事を投稿しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした