Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
52
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@ttyokoyama

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

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

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

  • この記事は個人的なものです。私の雇用者とは全く関係はありません。(一応つけておきます)
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
52
Help us understand the problem. What are the problem?