見出し画像

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」が正常に動作しなかったので、自分でまとめた記事を作成してみました。
出来たことをすぐに記事にしたので、自分では分かっているけど、読んでいる人に分かりにくいところがあると思います。
コメントいただければ、出来る範囲で更新しますので、ぜひご意見ください。

この記事が参加している募集

#おうち時間を工夫で楽しく

95,447件

この記事が気に入ったらサポートをしてみませんか?