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クラスからユーザープロパティのオブジェクトを取得して確認する必要があります。

PropertiesService.getUserProperties().getProperties()

取得できるのは自分のユーザープロパティのみで、他の実行ユーザーのものは取得できないので注意しましょう。

ユーザープロパティを削除するサンプルコード

ユーザープロパティを残したままにしておきたくない場合、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の各種プロパティを使い分け、ユーザープロパティを取得・保存・削除したい場合はサンプルコードを参考にしてみてください。