GASのScriptPropertiesクラスがサポート終了!スクリプトプロパティの取得方法は?

2023年5月31日

Google Apps Script(GAS)でAPIキーやパスワードの保存先として、スクリプトプロパティがよく利用されます。

スクリプトプロパティの値を参照する際はScriptPropertiesクラスで、getPropertyメソッドを使うのが一般的でした。

しかし、ScriptPropertiesクラスはすでにサポート終了し、プロパティを取得・保存するメソッドも廃止予定になっています。

GASのスクリプトプロパティの概要

Google Apps Script(GAS)ではAPIとの通信が頻繁に行われます。

その際にAPIキーやトークンをGASコードに直書きすることも多いですが、この方法は危険です。

Githubなどのバージョン管理ツールを利用している際に、APIキーやトークンもコードとともに流出する恐れがあります。

そのために用意されているのがGASのスクリプトプロパティです。

Google Apps Script(GAS)の新しいスクリプトエディタ(IDE)でスクリプトプロパティの設定がGUI操作で可能に

GASのスクリプトプロパティはコードとは別の場所にプロパティ名と値を保存しておくことができます。

GASのスクリプトエディタ(新IDE)にスクリプトプロパティのGUI設定が復活!

※以前はスクリプト実行してスクリプトプロパティをセットしかできませんでしたが、GUI操作で保存できるようになっています。

スクリプトプロパティを活用することで、APIキーやパスワードなどの秘匿情報をコード上では見えない形で秘匿しておき、実行時に利用できます。

GASコードでスクリプトプロパティを参照

Google Apps Script(GAS)のスクリプトプロパティは、前述した通り、現在スクリプトエディタのGUI操作で保存することができます。

左メニュー「プロジェクトの設定」を選択すると、下部にスクリプトプロパティを追加可能です。

Google Apps Script(GAS)のスクリプトエディタのプロジェクトの設定メニューからスクリプトプロパティを設定可能

こうして追加したスクリプトプロパティは、ScriptPropertiesクラスに用意されたgetScriptPropertyメソッドで参照することができます。

ScriptProperties.getProperty(‘プロパティキー’)

前述のスクリーンショットのスクリプトプロパティの場合は以下を実行すると、「スクリプトプロパティテスト」の値を取得可能です。

ScriptProperties.getProperty(‘TEST’)

Script Propertiesは2023年すでにサポート終了

これまでQiitaやZennといった技術共有サービスでもScriptPropertiesクラスを使ったスクリプトプロパティ操作方法が紹介されていました。

しかし、ScriptPropertiesクラスは2023年5月時点ですでにサポートが終了しています。

Google Apps Script(GAS)のScriptPropertiesクラスは2023年5月時点でサポート終了し、廃止予定に

Google Apps Script(GAS)の公式リファレンスでも「非推奨。このクラスは非推奨のため、新しいスクリプトには使用しないでください。」と表示されています。

それに伴い、ScriptPropertiesクラスで利用可能だったメソッドがすべてサポート終了と表示されています。

Google Apps Script(GAS)のScriptPropertiesクラスで実行可能だった各種プロパティを取得・保存するメソッドはすべてサポート終了して非推奨に

スクリプトプロパティのキー・プロパティを取得するものから、追加・削除するあらゆるメソッドが取り消し線で使用しないよう呼びかけられています。

ScriptPropertiesはGASエディタで取り消し線

実際にGoogle Apps Script(GAS)のスクリプトエディタで利用してみるとどうなるか確認してみました。

ScriptPropertiesクラスを入力したあと、メソッドを選択しようとすると、選択可能なメソッドにすべて斜線がひかれている状態です。

サポート終了になった廃止予定のScriptPropertiesクラスのメソッドをGoogle Apps Script(GAS)のスクリプトエディタでサジェストした結果

GAS側もScriptPropertiesクラスを使わせないようにエディタの表示を修正しています。

なお、2023年6月1日時点ではまだScriptProperties.getScriptPropertyメソッドを利用することは可能です。

2023年6月時点ではサポート終了したScriptPropertiesの各種メソッドも実行可能

GASスクリプトを実行すると、冒頭の説明で紹介したプロパティ名「TEST」の値を取得できることは確認できています。

しかし、ScriptPropertiesクラスがサポート終了し、廃止予定であることからも利用は控えるのがオススメです。

スクリプトプロパティの代替参照方法は?

Google Apps Script(GAS)スクリプトプロパティが使えなくなるのか?と不安を感じる人もいるかもしれません。

しかし、Google側もきちんと代替方法を用意しています。

それがPropertiesServiceクラスを利用した方法です。

ScriptPropertiesクラスよりも実行するメソッド数は増えますが、以下の記述でスクリプトプロパティを参照できます。

PropertiesService.getScriptProperties().getProperty('プロパティキー’)

上記のPropertiesServiceのメソッドで引数に指定したプロパティ名を持つスクリプトプロパティが取得できるようになります。

Google Apps Script(GAS)のスクリプトプロパティを取得する場合は、PropertiesService.getScriptProperties().getPropertyの使用を推奨

console.log内で実行すると、スクリプトプロパティの値が実行ログで出力できています。

そのため、今後GASのスクリプトプロパティを取得したい場合には、PropertiesServiceクラスのgetScriptProperties().getPropertyメソッドを使用しましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)のスクリプトプロパティを取得・追加・削除などを行うScriptPropertiesクラスが2023年5月時点でサポート終了していることを紹介しました。

GASでAPIキーやトークン、認証情報などを扱う場合、コードに直書きせずにスクリプトプロパティに保存するのが一般的です。

そうしたスクリプトプロパティに保存した値は、ScriptPropertiesクラスのgetPropertyメソッドで取得していました。

2023年6月時点ではGASスクリプトで実行可能なものの、リファレンスではサポート終了して廃止予定となっています。

そのため、今後はScriptProperties.getScriptPropetyの使用しないようにするのがおすすめです。

スクリプトプロパティを操作したい場合は、PropertiesServiceクラスの各種メソッドを使うようにしましょう。