Help us understand the problem. What is going on with this article?

GASのPropertiesServiceのスコープ

More than 1 year has passed since last update.

この話は一体

この記事はGASのPropertiesServiceのスコープを実際にアドオンつくって検証してみた話です。

前提

PropertiesServiceはGAS内のlocalstorage的なデータストアのことです。
このストレージタイプは3種類(Document/Script/User)あってそれぞれドキュメントにはこう書かれてます。

ストレージタイプ 説明
DocumentPropeties Gets a property store (for this script only) that all users can access within the open document, spreadsheet, or form.
ScriptPropeties Gets a property store that all users can access, but only within this script.
UserProperties Gets a property store that only the current user can access, and only within this script.

実験手順

A-spreadsheetとB-spreadsheetのふたつのシートを使ってアドオンでPropertiesService使って保持したデータの表示可否をチェックした。
また、アドオン化したscript idが配布後のユーザー間でも同じかどうかチェックした。

結果

script idについて

script idはAさんとBさんにアドオン配布後に確認したところ、両方で同じIDを示していたため、両者のscriptは同じものと扱われる

propertiesのスコープについて

AさんがA-spreadsheetのそれぞれのPropetiesに追加して、それぞれをアドオンで確認したところ

追加したところ AさんがA-spreadsheet見た時 AさんがB-spreadsheet見た時 BさんがA-spreadsheet見た時 BさんがB-spreadsheet見た時
DocumentPropeties 見える 見えない 見える 見えない
ScriptPropeties 見える 見える 見える 見える
UserProperties 見える 見える 見えない 見えない

まとめ

  • scriptをアドオン化して配布した場合でもscriptはすべて同一のものとして扱われ、ユーザー間でScriptPropertiesを共有することになるのでアドオン設計時には注意が必要。
  • DocumentPropertiesはユーザーに依存しない。
  • UserPropertiesはドキュメントに依存しない。

現場からは以上です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした