1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Apps Script の Manifests について (appsscript.json) 参考サイトとメモ

Posted at

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"
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?