GASのScriptPropertiesクラスがサポート終了!スクリプトプロパティの取得方法は?
Google Apps Script(GAS)でAPIキーやパスワードの保存先として、スクリプトプロパティがよく利用されます。
スクリプトプロパティの値を参照する際はScriptPropertiesクラスで、getPropertyメソッドを使うのが一般的でした。
しかし、ScriptPropertiesクラスはすでにサポート終了し、プロパティを取得・保存するメソッドも廃止予定になっています。
GASのスクリプトプロパティの概要
Google Apps Script(GAS)ではAPIとの通信が頻繁に行われます。
その際にAPIキーやトークンをGASコードに直書きすることも多いですが、この方法は危険です。
Githubなどのバージョン管理ツールを利用している際に、APIキーやトークンもコードとともに流出する恐れがあります。
そのために用意されているのがGASのスクリプトプロパティです。
GASのスクリプトプロパティはコードとは別の場所にプロパティ名と値を保存しておくことができます。
※以前はスクリプト実行してスクリプトプロパティをセットしかできませんでしたが、GUI操作で保存できるようになっています。
スクリプトプロパティを活用することで、APIキーやパスワードなどの秘匿情報をコード上では見えない形で秘匿しておき、実行時に利用できます。
GASコードでスクリプトプロパティを参照
Google Apps Script(GAS)のスクリプトプロパティは、前述した通り、現在スクリプトエディタのGUI操作で保存することができます。
左メニュー「プロジェクトの設定」を選択すると、下部にスクリプトプロパティを追加可能です。
こうして追加したスクリプトプロパティは、ScriptPropertiesクラスに用意されたgetScriptPropertyメソッドで参照することができます。
ScriptProperties.getProperty(‘プロパティキー’)
前述のスクリーンショットのスクリプトプロパティの場合は以下を実行すると、「スクリプトプロパティテスト」の値を取得可能です。
ScriptProperties.getProperty(‘TEST’)
Script Propertiesは2023年すでにサポート終了
これまでQiitaやZennといった技術共有サービスでもScriptPropertiesクラスを使ったスクリプトプロパティ操作方法が紹介されていました。
しかし、ScriptPropertiesクラスは2023年5月時点ですでにサポートが終了しています。
Google Apps Script(GAS)の公式リファレンスでも「非推奨。このクラスは非推奨のため、新しいスクリプトには使用しないでください。」と表示されています。
それに伴い、ScriptPropertiesクラスで利用可能だったメソッドがすべてサポート終了と表示されています。
スクリプトプロパティのキー・プロパティを取得するものから、追加・削除するあらゆるメソッドが取り消し線で使用しないよう呼びかけられています。
ScriptPropertiesはGASエディタで取り消し線
実際にGoogle Apps Script(GAS)のスクリプトエディタで利用してみるとどうなるか確認してみました。
ScriptPropertiesクラスを入力したあと、メソッドを選択しようとすると、選択可能なメソッドにすべて斜線がひかれている状態です。
GAS側もScriptPropertiesクラスを使わせないようにエディタの表示を修正しています。
なお、2023年6月1日時点ではまだScriptProperties.getScriptPropertyメソッドを利用することは可能です。
GASスクリプトを実行すると、冒頭の説明で紹介したプロパティ名「TEST」の値を取得できることは確認できています。
しかし、ScriptPropertiesクラスがサポート終了し、廃止予定であることからも利用は控えるのがオススメです。
スクリプトプロパティの代替参照方法は?
Google Apps Script(GAS)スクリプトプロパティが使えなくなるのか?と不安を感じる人もいるかもしれません。
しかし、Google側もきちんと代替方法を用意しています。
それがPropertiesServiceクラスを利用した方法です。
ScriptPropertiesクラスよりも実行するメソッド数は増えますが、以下の記述でスクリプトプロパティを参照できます。
PropertiesService.getScriptProperties().getProperty('プロパティキー’)
上記のPropertiesServiceのメソッドで引数に指定したプロパティ名を持つスクリプトプロパティが取得できるようになります。
console.log内で実行すると、スクリプトプロパティの値が実行ログで出力できています。
そのため、今後GASのスクリプトプロパティを取得したい場合には、PropertiesServiceクラスのgetScriptProperties().getPropertyメソッドを使用しましょう。
まとめ・終わりに
今回、Google Apps Script(GAS)のスクリプトプロパティを取得・追加・削除などを行うScriptPropertiesクラスが2023年5月時点でサポート終了していることを紹介しました。
GASでAPIキーやトークン、認証情報などを扱う場合、コードに直書きせずにスクリプトプロパティに保存するのが一般的です。
そうしたスクリプトプロパティに保存した値は、ScriptPropertiesクラスのgetPropertyメソッドで取得していました。
2023年6月時点ではGASスクリプトで実行可能なものの、リファレンスではサポート終了して廃止予定となっています。
そのため、今後はScriptProperties.getScriptPropetyの使用しないようにするのがおすすめです。
スクリプトプロパティを操作したい場合は、PropertiesServiceクラスの各種メソッドを使うようにしましょう。
ディスカッション
コメント一覧
まだ、コメントがありません