【GAS】スクリプトを公開するときIDやAPIトークンを別に保存するといいよ【プロパティストア】

GASって便利です。

開発環境もインストールすることないし、Spread Sheet、Docs、Calender、などなどGoogleのAppsを操作できるし。。とっても便利。ちょっと難しい計算はGoogle colaboratoryでPythonの方が便利ですけど、おススメです。

Google Apps Scriptの関連記事はこちらです。

App Script | こだいらあたりでCivicTech
「App Script」の記事一覧です。

で。。便利なんですが、コードをシェアしようとおもったら。。いつも。。

var origRange = SpreadsheetApp.openById('コピー元のSpread Sheet のIDです').getSheetByName('シート名').getDataRange();

こんな感じで、書いていましたが。。IDやAPI Key等を隠して渡さないといけないので、なんかカッコ悪い感じでした。

それを少しだけカッコよく書けるという。。こんな記事を見つけたので紹介です。

【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの入力方法
初心者向けGoogle Apps Script入門として名言Botの作り方をお伝えしています。今回は、コードに直書きしたくないデータを格納する機能プロパティストアについて、またスクリプトプロパティの入力の方法です。
【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
初心者向けのシリーズとしてGoogle Apps Scriptで名言Botの作り方を解説しております。今回は、GASでPropertiesサービスを使ってスクリプトプロパティからデータを取り出す方法です。

プロパティストア

ぶっちゃけ。。大したことないんですが。。 プロジェクトのプロパティというやつで、グローバル定数が書けるって感じです。まぁ、これ使うか?という気もしないでもないのですが。。 コード自体からは、見えないので、不慮の事故が防げますって感じでしょうか?

シートのIDとかカレンダーIDなどは、シートやカレンダー側でセキュリティが別途あるので、漏れても大したことないですが。。特に、APIのSecreat Keyとか、他の人に使われるとよくないものなんかを消し忘れたりして公開するということを防げそうです。

値のセットの仕方

Google Spread Sheetなどからツール→スクリプトエディタからGASの画面に入り

ファイル の プロジェクトのプロパティ をクリック

そうすると、こんな画面がでてきますので、

スクリプトのプロパティ タブ をクリックします。 そして、行を追加で、変数名(定数名か?)と値を以下のように入れます。

 たったこれだけです。

GASからの読み出し

上のSheet_IDって値を取り出すのは、こんな感じです。

PropertiesService.getScriptProperties().getProperty('Sheet_ID');

これを、定数として何か名前をつけて使うなら

const sheet_id = PropertiesService.getScriptProperties().getProperty('Sheet_ID');

みたいに使います。

なんだか。。微妙ですが。。 こういう使い方もできるということで。。

ファイル名を取り出すとか、Glide用の住所から緯度経度を出すGASとか、予約システム(Tom’s hobbyの方)のGASとか、ちょくちょく問い合わせがあって、ほぼそのまま出しているんですが。。 やはり、これからは、こういう風に書いて、各自にIDを確実に変えてもらって使ってもらうことにします。