Manifestsとは
Manifestsは、appsscript.json
というファイルで各種設定を編集することで機能を追加できる機能。
それまではブラウザから各スイッチをクリックしてようやく機能追加に至っていたがjsonの編集で機能を追加できるようになったことで便利になった。
初期設定
{
"timeZone": "Asia/Tokyo",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}
設定の一例:拡張サービスのDrive APIをオンにする設定
{
"timeZone": "Asia/Tokyo",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Drive",
"serviceId": "drive",
"version": "v2"
}]
},
"exceptionLogging": "STACKDRIVER"
}
プロパティの一例
プロパティ | 内容 |
---|---|
timeZone | タイムゾーンの設定 |
oauthScopes[] | スコープの設定 |
dependencies | 拡張サービス(dependencies.enabledAdvancedServices[]) ライブラリの設定(dependencies.enabledAdvancedServices[]) |
exceptionLogging | ログの記録場所(初期値: STACKDRIVER) |
webapp | ウェブアプリケーションの設定(デプロイされていることが前提) |
executionApi | 実行可能APIの設定(デプロイされていることが前提) |
urlFetchWhitelist[] | URL Fetch ServiceでアクセスできるURLの設定 |
gmail | Gmailアドオンとしてデプロイされているリソースの設定 |
runtimeVersion | JavaScriptエンジン"V8"の設定 |
Drive API について
Drive API とは
共有ドライブ の操作を実装するために有効化する API
共有ドライブとは
Google ドライブの共有ドライブでは、チームで使うファイルの保存、検索、および、ファイルへのアクセスができます。
共有ドライブ内のファイルは、個人ではなくチームが所有します。
メンバーがいなくなってもファイルはそのまま残るため、どこにいてもどのデバイスからでも、チームで引き続き情報を共有して仕事を進めることができます。
共有ドライブの主な操作
- 共有ドライブの作成
- フォルダの作成
- ファイルの作成
- フォルダの移動
- ファイルの移動
- 共有ドライブの削除
Googleドライブ は 「DriveApp」 を、共有ドライブ は 「Drive」 を、それぞれ使用する。
また、Googleドライブ(DriveApp)と共有ドライブ(Drive)とで扱う オブジェクトは型が異なる 。
共有ドライブはTeamDrive型、GoogleドライブではFolder型。
実際にはファイルまで含めると DriveApp(Googleドライブ) で操作する方が多くなるので、 Folder型 に変換して操作する方が便利。
共有ドライブのコードについて
参考サイト参照
手順
- Drive API を有効にする
- 権限一覧を整備する
- TeamDrive型からDrive型に変換
- 共有ドライブを取得
- 共有ドライブを新規作成
- 共有ドライブにフォルダを作成
- 共有ドライブを削除
- ライブラリ化せず、functionをそのまま使う形で実装するコード例
- 非公式APIリファレンス
oauthScopes[]について
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 「スコープ」
スコープとは
影響範囲のこと。
OAuth
OAuth2.0スコープ とは
「スコープ」は書かれたコードから自動判定される模様。
スクリプトの実行に必要なアクセス権。
スクリプトを実行するユーザのデータに対して、どんな操作を行うか判断する。
例えば「データを読むだけ」とか「アプリで作ったデータの読み書きだけ」とか。
確認と設定
確認
「ファイル > スクリプトのプロパティ > スコープ」 の中で確認できる。
設定
「表示 > マニフェスト ファイルを表示」 でappsscript.json
が開くのでそこに追加する。
"oauthScopes": [
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/drive"
]
スコープ | |
---|---|
https://www.googleapis.com/auth/spreadsheets | See, edit, create, and delete your spreadsheets in Google Drive |
https://www.googleapis.com/auth/drive | See, edit, create, and delete all of your Google Drive files |
STACKDRIVER
クラウドベースのアプリケーション向けに統合化された、監視機能やロギング機能を提供するモニタリングツール。
GCPだけでなく、AWS上で動くリソースの監視や情報収集、診断が行うことができる。
Stackdriver Logging
クラウドや、オープンソースアプリケーションからのログを表示、フィルタリング、検索する機能を備えている。
ログを BigQuery、Google Cloud Storage、Pub/Sub にエクスポートすることもできるので、高速にログ解析ができる。
他にも下記の機能がある。詳細は参考サイト参照のこと。
- Stackdriver Monitoring
- Stackdriver Error Reporting
- Stackdriver Debugger
- Stackdriver Trace
- Stackdriver Profiler(BETA)
"runtimeVersion": "V8" とは
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 「ランタイム」
ランタイムとは
プログラムを動かすときに必要な部品を指す用語
V8ランタイムとは
GASのアップデートにより、「Rhinoランタイム」というJavaScriptエンジンに加え、 「V8ランタイム」 と呼ばれるJavaScriptエンジン(ECMAScript第6版(ES6))がサポートされた。
一般で最もよく使用されているJavaScriptエンジンで、「Rhinoランタイム」では使えなかったJavaScript構文のいくつかが、新たに使えるようになったり、開発環境のいくつかも改善した。
V8ランタイムの設定方法
- スクリプトエディタのメニューから設定する
- マニフェストファイル(
appsscript.json
)を編集して設定する方法がある。
※2022年現在はappsscript.jsonの設定なしでES6が使用可能とのこと。(デフォルトでONになる模様)
下記サイト参照
appsscript.json
を編集する場合
runtimeVersion フィールドに "V8" を指定することで、切り替えが可能。
{
"timeZone": "Asia/Tokyo",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}