Google Apps Script(GAS)
GASをローカル環境(Mac)で開発したい
事前準備
・node
・nodebrew
・homebrew
https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09
↑きょうすけさんありがとうございます。
前提
・[自] - 自分のPC
・[G] - Google Apps Script(https://script.google.com/home)
・[C] - Google Cloud Platform(https://console.cloud.google.com/home/)
clasp
https://github.com/google/clasp
[G]Google Apps Script APIを有効にする
https://script.google.com/home/usersettings
「オン」
[自]ターミナルを起動する
https://support.apple.com/ja-jp/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac
[自]claspを導入する
sudo npm install -g @google/clasp
[自]プロジェクトフォルダを作成する
「書類」の「Sources」の「GAS」の「firstClasp」を作成して移動する。
mkdir ~/Documents/Sources
mkdir ~/Documents/Sources/GAS
mkdir ~/Documents/Sources/GAS/firstClasp
cd ~/Documents/Sources/GAS/firstClasp
[自][G]claspをGoogle認証する
実行すると、ブラウザが開くので、ログインするアカウントを選択する。
clasp login
clasp – The Apps Script CLI が Google アカウントへのアクセスをリクエストしています。
[許可]
↓
Logged in! You may close this page.
ここまで来たら、ブラウザを閉じる。
Google認証ファイルが作成される。
less ~/.clasprc.json
[自]standaloneプロジェクトを作成する
clasp create firstClasp
❯ standalone
docs
sheets
slides
forms
webapp
api
自動作成されたファイルを確認する。
ls -a
. .. .clasp.json appsscript.json
[自]スクリプトの初期設定をする
viの基本操作
http://www.gi.ce.t.kyoto-u.ac.jp/user/susaki/command/vi.html
↑須崎さんありがとうございます。
vi appsscript.json
初期状態
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}
・timeZoneを日本に書き換え
・executionApiを追加
{
"timeZone": "Asia/Tokyo",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8",
"executionApi": {
"access": "ANYONE"
}
}
プロジェクトの設定をする
https://github.com/google/clasp#project-settings-file-claspjson
プロジェクト内に「src」ディレクトリを作成する。
mkdir src
アプリケーション設定ファイルを「src」に移動する。
mv appsscript.json ./src
「src」をルートディレクトリとする。
clasp setting rootDir ./src
デフォルト「js」なので「TypeScript」に変更する。
clasp setting fileExtension ts
TypeScript の概要
https://qiita.com/EBIHARA_kenji/items/4de2a1ee6e2a541246f6
↑kenji EBIHARAさんありがとうございます。
[自]プロジェクトとスクリプトの設定をGASに反映する
clasp push
[自][G]GAS初期ファイル(Code.gs)を取得する
ブラウザが開いてGASのfirstClaspプロジェクトが表示される。
clasp open
最初に開いた時点で、Code.gsが自動的に生成される。
生成されたCode.gsを[自]に取得する。
clasp pull
[C]プロジェクトを作成する
GASのプロジェクトに1:1で紐付けるGCPのプロジェクトを作成する。
プロジェクト名「firstClasp」
プロジェクト名以外は初期値のままとする。
https://cloud.google.com/resource-manager/docs/creating-managing-projects?hl=ja
[C]プロジェクト番号を控える
[自]プロジェクト番号を設定する
clasp setting projectId <PROJECT_ID>
[C]OAuth 同意画面の初期設定をする
プロジェクトを作成したら、最初に1度設定する必要がある。
アプリケーション名「clasp project」
アプリケーション名以外は初期値のままとする。
https://support.google.com/gsuitemigrate/answer/9222992?hl=ja
↑
Gsuiteで無い場合、[外部] に読み替える。
3.[User Type] を [内部] に設定し、[作成] をクリックします。
[自][G]GASにGCPを紐付ける
clasp open
メニュー「リソース」
↓
「Cloud Platform プロジェクト」
プロジェクト番号を設定する。
※OAuth 同意画面の初期設定をしていないと、ここで設定するように促される。
[自][C]OAuth 2.0 クライアント IDに自PCを追加する
clasp open --creds
+認証情報を作成
↓
OAuth クライアント ID の作成
OAuth クライアント ID の作成
↓
○ その他
名前「自分のPCの名前」
作成したOAuth クライアント ID のダウンロード
「↓」をクリックでダウンロード出来ます。
ダウンロードした「OAuth クライアント ID」ファイルを「creds.json」に名前変更して、
プロジェクト内にコピー
cp ~/Downloads/[OAuth クライアント ID] ./creds.json
自PCをクライアント証明
clasp login --creds creds.json
ブラウザが開く
↓
「このアプリは確認されていません」
画面下にある「詳細」をクリックしてアクセスを進める。
↓
[許可]
↓
Logged in! You may close this page.
ここまで来たらブラウザを閉じる。
[自]ローカルでGASコードを実行する
myFunction内に処理が無いので「No response.」が返ってくる。
ローカルで実行出来ているので正常動作です。
clasp run
Running in dev mode.
? Select a functionName myFunction
No response.
最後に
お疲れさまでした。
Google検索して出てくる情報をそのまま実行しても「clasp run」が正常に動作しなかったので、自分でまとめた記事を作成してみました。
出来たことをすぐに記事にしたので、自分では分かっているけど、読んでいる人に分かりにくいところがあると思います。
コメントいただければ、出来る範囲で更新しますので、ぜひご意見ください。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?