豚吐露@wiki
1110_GAS入門2020
最終更新:
ohden
-
view
Google Apps Script 入門 2020/田邉裕貴
2020-10-18(日) 11:10~11:40
https://docs.google.com/presentation/d/1J05grqGg3gXC0mNKoukao6Dza4BvlA4K1ykdJp1Y2AY/edit?usp=sharing
G Suite→Google workspace
1.GAS概要
- Google Apps拡張、連携ができる
- JavaScriptで記述できる
v8に2020/02に対応
→モダンなJavaScriptが使えるようになった
→アロー関数、const、letなどサポート
→モダンなJavaScriptが使えるようになった
→アロー関数、const、letなどサポート
- 無料
無料制限を超えるとscript自体が止まる
利用制限はある:実行時間、カレンダーイベント作成回数、トリガーの数、外部API呼び出し回数など
https://developers.google.com/apps-script/guides/services/quotas
利用制限はある:実行時間、カレンダーイベント作成回数、トリガーの数、外部API呼び出し回数など
https://developers.google.com/apps-script/guides/services/quotas
- 実行時認証のため、認証部分のコーディング不要
2.GASでできること
- Appsのカスタマイズ、拡張
カスタムメニュー
→Docs、Sheets、Slides、Formsでカスタムメニューを追加し、選択時にGASを呼び出せる
https://developers.google.com/apps-script/guides/menus
ダイアログ
→アラート、プロンプト、カスタム(HTMLでUI作成)
https://developers.google.com/apps-script/guides/dialogs
サイドバー
→HTMLでUI作成
https://developers.google.com/apps-script/guides/dialogs#custom_sidebars
アドオン
→editorアドオン、Workspaceアドオン→Workspace Marketplaceに公開可能
https://developers.google.com/gsuite/add-ons/overview
https://gsuite.google.com/marketplace/
スプレッドシートのカスタム関数
https://developers.google.com/apps-script/guides/sheets/functions
→Docs、Sheets、Slides、Formsでカスタムメニューを追加し、選択時にGASを呼び出せる
https://developers.google.com/apps-script/guides/menus
ダイアログ
→アラート、プロンプト、カスタム(HTMLでUI作成)
https://developers.google.com/apps-script/guides/dialogs
サイドバー
→HTMLでUI作成
https://developers.google.com/apps-script/guides/dialogs#custom_sidebars
アドオン
→editorアドオン、Workspaceアドオン→Workspace Marketplaceに公開可能
https://developers.google.com/gsuite/add-ons/overview
https://gsuite.google.com/marketplace/
スプレッドシートのカスタム関数
https://developers.google.com/apps-script/guides/sheets/functions
- Apps間の連携
スプレッドシートで管理されたイベントをカレンダーに登録
カレンダーの予定をスプレッドシートに取り込む
スプレッドシートのmailaddress一覧宛にメール送信
gmailのmail一覧をスプレッドシートに取り込む
Formの投稿をgmailで通知
などなど
カレンダーの予定をスプレッドシートに取り込む
スプレッドシートのmailaddress一覧宛にメール送信
gmailのmail一覧をスプレッドシートに取り込む
Formの投稿をgmailで通知
などなど
- 外部API呼び出し
Slack、Twitterなど
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl,-params
Appsと外部サービスの連携
→外部サービスAPIからスプレッドシートに情報取り込み、Data Studioでダッシュボード作成
→Formの投稿をSlackに通知
→などなど
https://medium.com/google-cloud-jp/9aa831c1bf0e
https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app#fetchurl,-params
Appsと外部サービスの連携
→外部サービスAPIからスプレッドシートに情報取り込み、Data Studioでダッシュボード作成
→Formの投稿をSlackに通知
→などなど
https://medium.com/google-cloud-jp/9aa831c1bf0e
- Googleのその他のサービスとの連携
Google翻訳、Analytics、BigQuery、YouTube、etc..
APIラッパーが用意されている
https://developers.google.com/apps-script/guides/services/advanced
APIラッパーが用意されている
https://developers.google.com/apps-script/guides/services/advanced
- 定期実行
トリガ機能の一つ
cronと同じような感じ
→分、時、日、週、月
→毎週X曜日のY時に実行
cronと同じような感じ
→分、時、日、週、月
→毎週X曜日のY時に実行
- Web公開
APIやWebサイトの公開が可能
doGet、doPost関数の実装でHTTPのGET、POSTリクエストに対応可能
workspaceメンバのみに公開ができるので社内向けサイトを容易に構築できる
https://developers.google.com/apps-script/guides/web
doGet、doPost関数の実装でHTTPのGET、POSTリクエストに対応可能
workspaceメンバのみに公開ができるので社内向けサイトを容易に構築できる
https://developers.google.com/apps-script/guides/web
3.GASを習得するまで
JavaScriptを覚える
https://prog-8.com/languages/es6
https://www.codecademy.com/learn/introduction-to-javascript
https://dotinstall.com/lessons/basic_javascript_v4
debug法を覚える
→debugger
→console.log
公式ドキュメント
https://developers.google.com/apps-script/articles/tutorials
https://developers.google.com/gsuite/solutions
https://developers.google.com/gsuite/add-ons/samples
https://github.com/googleworkspace/apps-script-samples
https://github.com/googleworkspace/add-ons-samples
Codelabs
https://codelabs.developers.google.com/?cat=G Suite
https://tanabee.github.io/gas-codelab/ja/#0
GASで使うスニペット集
https://qiita.com/tanabee/items/5de3e8715be759ce1c7f
clasp:ローカル環境で開発したcodeをdeployできる
→GAS版git
→clasp clone [ScriptID]
→clasp push
→clasp pull
JavaScriptを覚える
https://prog-8.com/languages/es6
https://www.codecademy.com/learn/introduction-to-javascript
https://dotinstall.com/lessons/basic_javascript_v4
debug法を覚える
→debugger
→console.log
公式ドキュメント
https://developers.google.com/apps-script/articles/tutorials
https://developers.google.com/gsuite/solutions
https://developers.google.com/gsuite/add-ons/samples
https://github.com/googleworkspace/apps-script-samples
https://github.com/googleworkspace/add-ons-samples
Codelabs
https://codelabs.developers.google.com/?cat=G Suite
https://tanabee.github.io/gas-codelab/ja/#0
GASで使うスニペット集
https://qiita.com/tanabee/items/5de3e8715be759ce1c7f
clasp:ローカル環境で開発したcodeをdeployできる
→GAS版git
→clasp clone [ScriptID]
→clasp push
→clasp pull
4.アンチパターン
重い処理を大量コールしてる
→実行時間制限で途中で処理が終わる可能性がある。
→時間のかかる処理を繰り返させるのではなく、重い処理は一度にまとめて行うような書き方が推奨される
重い処理を大量コールしてる
→実行時間制限で途中で処理が終わる可能性がある。
→時間のかかる処理を繰り返させるのではなく、重い処理は一度にまとめて行うような書き方が推奨される
制限事項を考慮しない設計
e.g.)1日にmailのread/writeは20000件、新規スプレッドシートの数は250件、GAS実行時間は90分。
→実行時間が1分のGASを繰り返し実行する場合は、1日に90回の実行回数を超えないように、トリガを設定する。
→15分に1回実行だと、実行に96分必要になるので、6回分実行できなくなる。
→処理時間とトリガに設定する頻度を考慮しないと、利用制限の枠に収まらないで途中から実行されないようになる
e.g.)1日にmailのread/writeは20000件、新規スプレッドシートの数は250件、GAS実行時間は90分。
→実行時間が1分のGASを繰り返し実行する場合は、1日に90回の実行回数を超えないように、トリガを設定する。
→15分に1回実行だと、実行に96分必要になるので、6回分実行できなくなる。
→処理時間とトリガに設定する頻度を考慮しないと、利用制限の枠に収まらないで途中から実行されないようになる
何でもGASにやらせるのはNG
→メリット・デメリットの理解。他の選択肢も要検討
→Appsに無関係の処理
→npmモジュール使いたい
→API呼び出し制限回数気にせずに作りたい
→メリット・デメリットの理解。他の選択肢も要検討
→Appsに無関係の処理
→npmモジュール使いたい
→API呼び出し制限回数気にせずに作りたい
更新日: 2020年10月31日 (土) 16時27分36秒