GASのユーザープロパティの設定方法を解説!保存や取得、削除メソッドを解説
Google Apps Script(GAS)には、スクリプトを実行するユーザーに紐づく形でキーと値のペアを保存できるユーザープロパティという機能が用意されています。
GASのユーザープロパティについて、GASスクリプトから保存する方法や取得方法、さらに削除する方法を解説します。
GASのユーザープロパティとは
Google Apps Script(GAS)で業務効率化のプログラムを書いていると、APIキーやアクセストークンなどの秘匿情報を扱うことがあります。
単純なサンプルコードではGASコードにそうしたAPIキーを直書きしているケースも多いです。
しかし、秘匿情報をコードに掲載するのは不適切なため、GASにはキーと値のペアを保存できるプロパティが用意されています。
プロパティサービスには3種類ある中、GAS実行ユーザーに紐づくものがユーザープロパティです。
ユーザープロパティはGASプロパティにおいて、GASスクリプトを実行するユーザー単位で保存されます。
ユーザープロパティは自分しか設定・参照できず、共同編集者などに見えることはありません。
そのため、実行ユーザーのパスワードなど、スクリプトプロパティのように他のユーザーと共有したくない情報を扱うのに便利です。
UserPropertiesクラスはサポート終了
Google Apps Script(GAS)においてユーザープロパティを操作する際に、UserPropertiesクラスが利用されていました。
しかし、UserPropertiesクラスは2023年5月時点でサポート終了し、廃止予定との情報があります。
今後新しくGASのコードを書く際には、UserPropertiesは利用しないのがおすすめです。
PropertiesServiceでユーザープロパティ操作
では、Google Apps Script(GAS)のユーザープロパティを保存したり、取得したりといった操作をするにはどうすればよいでしょうか?
UserPropertiesクラスが削除されましたが、ユーザープロパティは現在も操作可能です。
ユーザープロパティを各種操作するため、PropertiesServiceクラスを利用します。
PropertiesServiceクラスからgetUserProperties()メソッドを実行すると、戻り値としてユーザープロパティが取得可能です。
GASユーザープロパティ保存・取得のサンプルコード
実際にGoogle Apps Script(GAS)のPropertiesServiceクラスのgetUserProperties()メソッドを使い、ユーザープロパティを取得してみます。
GASでユーザープロパティを保存して取得する方法をサンプルコードで解説します。
function userPropertyTest(){
//PropertiesServiceでユーザープロパティをセット
PropertiesService.getUserProperties().setProperty('USER','ユーザーテスト');
//ユーザープロパティを取得し、ログ出力
console.log(PropertiesService.getUserProperties().getProperty('USER'));
}
setPropertyメソッドでユーザープロパティを保存し、getPropertyメソッドで取得します。
実行ログに出力されたように、まずsetPropertyで{'USER’ : 'ユーザーテスト’}というユーザープロパティを作成して保存します。
続いてユーザープロパティを取得して、console.logで実行ログに出力します。
1つのクラスで2つのメソッドを扱うので、記述量は多いですが、簡単にユーザープロパティは保存・削除可能です。
ユーザープロパティはエディタのどこで確認?
なお、Google Apps Script(GAS)のユーザープロパティに関する質問で、「スクリプトエディタのどこで確認できるか?」と聞かれることが多いです。
ユーザープロパティは冒頭紹介した通り、GASのスクリプトを実行するユーザーに紐づくプロパティです。
そのため、スクリプトプロパティのようにGASのIDE上で確認することはできません。
そのため、GASのユーザープロパティを確認したい場合は、以下のPropertiesServiceクラスからユーザープロパティのオブジェクトを取得して確認する必要があります。
取得できるのは自分のユーザープロパティのみで、他の実行ユーザーのものは取得できないので注意しましょう。
ユーザープロパティを削除するサンプルコード
ユーザープロパティを残したままにしておきたくない場合、Google Apps Script(GAS)のコードから削除することもできます。
ユーザープロパティを削除するGASのサンプルコードは以下の通りです。
function deleteUserPropertyTest(){
//PropertiesServiceでユーザープロパティを削除
PropertiesService.getUserProperties().deleteProperty('USER');
//ユーザープロパティを取得し、ログ出力
console.log(PropertiesService.getUserProperties().getProperty('USER'));
}
実際にdeletePropertyメソッドを実行するGAS関数を実行すると、先程保存したユーザープロパティが取得できなくなることが確認できます。
ユーザープロパティ削除では、引数に指定したキーが該当せず削除されなかった場合もエラー等は発生しません。
そのため、ユーザープロパティが削除されたか、別途ユーザープロパティを取得して確認が必要です。
まとめ・終わりに
今回、Google Apps Script(GAS)でユーザープロパティの保存・取得・削除といった各種操作方法を紹介しました。
ユーザープロパティは3つあるGASのプロパティの中で、ユーザーに紐づく形で保存され、他の実行ユーザーにも値は参照できない仕様です。
そのため、ユーザープロパティは他のユーザーにも見られたくない個人パスワードなどを入力するのに向いています。
実際にPropertiesService.getUserProperties()でユーザープロパティを取得した上で、ユーザープロパティを書き込んだり、読み込んだりしました。
GASの3つあるプロパティの中では、スクリプトプロパティがよく用いられていますが、他のゆーざーに知られたくない場合にユーザープロパティがおすすめです。
求められる情報開示範囲に応じてGASの各種プロパティを使い分け、ユーザープロパティを取得・保存・削除したい場合はサンプルコードを参考にしてみてください。
ディスカッション
コメント一覧
まだ、コメントがありません