プロパティ サービス

プロパティ サービスでは、 1 つのスクリプト、1 つのスクリプトのユーザーをスコープとする Key-Value ペアの単純なデータ、または アドオンが使用されている 1 つのドキュメント。内容 通常は、デベロッパーの設定やユーザーの設定を保存するために使用されます。プロパティ スクリプト間で共有されることはありません。

プロパティ サービスの 1 日の割り当てと保存容量の上限を確認するには、以下をご覧ください。 Google サービスの割り当て

不動産店舗の比較

PropertiesService グローバル オブジェクトには 3 つのメソッドがあり、それぞれが同様の Properties ただし、アクセス権限は異なります。次の表をご覧ください。

スクリプト プロパティ ユーザー プロパティ ドキュメント プロパティ
アクセス方法 getScriptProperties() getUserProperties() getDocumentProperties()
データの共有先 スクリプト、アドオン、ウェブアプリのすべてのユーザー スクリプト、アドオン、またはウェブアプリの現在のユーザー 開いているドキュメント内のアドオンのすべてのユーザー
主な用途 アプリ全体の設定データ(アプリのユーザー名とパスワードなど) デベロッパーの外部データベースに メートル単位やヤードポンド単位など、ユーザー固有の設定 ドキュメント固有のデータ(埋め込みグラフのソース URL など)

データ形式

プロパティ サービスは、すべてのデータを Key-Value ペアの文字列として格納します。データの種類 自動的に文字列に変換されます。 保存されているオブジェクトに含まれるメソッドも参照できます。

データの保存

単一の値を保存するには、Properties.setProperty(key, value) メソッドを呼び出します。 該当するストアの ID を追加します。

service/propertyService.gs
try {
  // Set a property in each of the three property stores.
  const scriptProperties = PropertiesService.getScriptProperties();
  const userProperties = PropertiesService.getUserProperties();
  const documentProperties = PropertiesService.getDocumentProperties();

  scriptProperties.setProperty('SERVER_URL', 'http://www.example.com/');
  userProperties.setProperty('DISPLAY_UNITS', 'metric');
  documentProperties.setProperty('SOURCE_DATA_ID',
      '1j3GgabZvXUF177W0Zs_2v--H6SPCQb4pmZ6HsTZYT5k');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

データを一括で保存するには、Key-Value ペアのマップを Properties.setProperties(properties)。 パラメータ内のオブジェクトの各 Key-Value ペアは、それぞれ個別の プロパティ:

service/propertyService.gs
try {
  // Set multiple script properties in one call.
  const scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperties({
    'cow': 'moo',
    'sheep': 'baa',
    'chicken': 'cluck'
  });
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

データの読み取り

以前に保存した単一の値を取得するには、次の呼び出しを呼び出します。 Properties.getProperty(key):

service/propertyService.gs
try {
  // Get the value for the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  const units = userProperties.getProperty('DISPLAY_UNITS');
  console.log('values of units %s', units);
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

現在のプロパティ ストア内のすべての値を取得するには、次の呼び出しを呼び出します。 Properties.getProperties():

service/propertyService.gs
try {
  // Get multiple script properties in one call, then log them all.
  const scriptProperties = PropertiesService.getScriptProperties();
  const data = scriptProperties.getProperties();
  for (const key in data) {
    console.log('Key: %s, Value: %s', key, data[key]);
  }
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

データの修正

getProperty() メソッドと getProperties() メソッドは、保存された データであり、ライブビューではありません。そのため、返されたオブジェクトを変更しても値は更新されません。 取得しますストアのデータを更新するには、もう一度保存します。

service/propertyService.gs
try {
  // Change the unit type in the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  let units = userProperties.getProperty('DISPLAY_UNITS');
  units = 'imperial'; // Only changes local value, not stored value.
  userProperties.setProperty('DISPLAY_UNITS', units); // Updates stored value.
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

データを削除する

値を 1 つだけ削除するには、 Properties.deleteProperty(key):

service/propertyService.gs
try {
  // Delete the user property 'DISPLAY_UNITS'.
  const userProperties = PropertiesService.getUserProperties();
  userProperties.deleteProperty('DISPLAY_UNITS');
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

現在のストアのすべてのプロパティを削除するには、次の呼び出しを呼び出します。 Properties.deleteAllProperties():

service/propertyService.gs
try {
  // Get user properties in the current script.
  const userProperties = PropertiesService.getUserProperties();
  // Delete all user properties in the current script.
  userProperties.deleteAllProperties();
} catch (err) {
  // TODO (developer) - Handle exception
  console.log('Failed with error %s', err.message);
}

スクリプトのプロパティを手動で管理する

Key-Value に文字列として最大 50 個のカスタム プロパティを手動で追加できる プロジェクト設定ページから確認できます。50 個を超える宿泊施設を追加するには、 上記の方法を使って、プログラムで追加する必要があります。 データの保存。 プロジェクト設定ページからスクリプト プロパティを設定する場合、 参照スクリプト変数を使用します。

スクリプトのプロパティを追加する

  1. Apps Script プロジェクトを開きます。
  2. 左側にある [プロジェクトの設定] プロジェクト設定のアイコン をクリックします。
  3. 最初のプロパティを追加するには、[Script Properties] で スクリプト プロパティを追加します。
  4. 2 番目以降のプロパティを追加するには、[Script Properties] で [スクリプトのプロパティを編集] > [スクリプト プロパティを追加] をクリックします。
  5. [プロパティ] にキー名を入力します。
  6. [] にキーの値を入力します。
  7. (省略可)プロパティを追加するには、[スクリプト プロパティを追加] をクリックします。
  8. [スクリプトのプロパティを保存する] をクリックします。

スクリプトのプロパティを編集

  1. Apps Script プロジェクトを開きます。
  2. 左側にある [プロジェクトの設定] プロジェクト設定のアイコン をクリックします。
  3. [スクリプトのプロパティ] で、[スクリプトのプロパティを編集] をクリックします。
  4. 変更する各プロパティのキー名と値に変更を加えます。
  5. [スクリプトのプロパティを保存する] をクリックします。

スクリプトのプロパティを削除する

  1. Apps Script プロジェクトを開きます。
  2. 左側にある [プロジェクトの設定] プロジェクト設定のアイコン をクリックします。
  3. [スクリプトのプロパティ] で、[スクリプトのプロパティを編集] をクリックします。
  4. 削除するプロパティの横にある削除アイコン をクリックします。
  5. [スクリプトのプロパティを保存する] をクリックします。