GASユーザープロパティ廃止の真相と代替策を探る!
GASのユーザープロパティって便利だと思ってたんだけど、最近なんか廃止されるって聞いたんだ。どうしたらいいのかな?

猫男

catman
ふむ、catmanが教えてやろう。GASのユーザープロパティは確かに廃止が発表された。だが、心配いらないぞ、代替策もあるからな。
GASユーザープロパティ廃止の背景
GASで長らく利用されてきたユーザープロパティは、ユーザーごとにスクリプトデータを保持するためのものでした。しかし、新たなセキュリティ基準やステータスの変化に応じて廃止が決まりました。
なぜ廃止が決まったのか?
- セキュリティ向上:ユーザーデータの保持方法を見直すため
- APIの進化:より効率的なデータ管理手法が求められている
じゃあ、GASでユーザープロパティの代わりに何を使えばいいのかな?

猫男

catman
代替策は色々ある。データの性質や範囲によるが、Script PropertiesやCloud Firestoreを検討するといいだろう。
ユーザープロパティの代替策
1. Script Propertiesの使用
GASにはデフォルトでスクリプトプロパティがあり、スクリプト全体で共有できるデータを扱うことが可能です。
function setProperty() {
const scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('key', 'value');
}
✅ PropertiesService.getScriptProperties()を使ってスクリプトのプロパティを管理できます。
2. Cloud Firestoreの利用
より大規模で柔軟なデータ管理には、FirebaseのCloud Firestoreが有用です。これによりサーバーレスでデータの読み書きを行えます。
3. スプレッドシートを利用
小規模なデータであれば、Googleスプレッドシートを簡易データベースとして利用することもできます。
function saveToSheet(data) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.appendRow([data]);
}
✅ SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()でスプレッドシートにアクセスし、データの保持が可能です。
なるほど!いろいろ使い分けないといけないんだね。でも、どうやって選べばいいの?

猫男

catman
データ量や用途によって選択するといい。こまごましたデータはスクリプトプロパティ、大規模や頻度の高いデータや共有にはFireStoreを使うと良いさ。
練習問題
スクリプトプロパティを利用して、特定のユーザー設定を保存・取得するスクリプトを書いてみましょう。
解答・解説
以下は、スクリプトプロパティを利用して、ユーザーの設定を保存し、取得する例です。
function saveUserSetting() {
const scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty('userSetting', 'darkMode');
}
function getUserSetting() {
const scriptProperties = PropertiesService.getScriptProperties();
const setting = scriptProperties.getProperty('userSetting');
Logger.log(setting); // 'darkMode'
}
✅ PropertiesService.getScriptProperties()でスクリプトプロパティサービスを取得し、setPropertyで設定を保存、getPropertyで設定を取得します。これにより、スクリプト全体で情報を保持することができます。