Google Apps Script(GAS)でスクリプトプロパティを使用する方法

こんにちは、くのへです!

プログラムのソースコードにAPIkey、アクセストークン、パスワードなどの機微な情報を書くと、そのコードを誰かに見せたり配布したりするときに、わざわざXXXXXのように書き換えないといけないですよね。
その作業を忘れて配布してしまうと、自分の機密情報が外部に漏れてしまうので大変なことになります。
また、関数を複数作る時、毎回APIkeyなどをコード内に書くのもちょっとめんどくさかったりします。

これを解決するのが「スクリプトプロパティ」という機能です。
Python使いの皆様は「.env」のことだと思ってOKです。

秘書子ちゃん

BOSS~
GASのスクリプトプロパティって何ですか?

BOSS

コードの外に変数と値を保存しておく機能と思えばOK!
これを使うとAPIキーやIDなどの機密情報をコードの外に保存しておくことが出来るんだ。
そして、プログラムでいつでも呼び出すことが出来るんだ。

秘書子ちゃん

プログラムで呼び出すのって、どんな感じですか?

BOSS

下図の①を見て欲しい。
ここがプログラムの外に保存したアクセストークンとユーザIDをプログラムに呼び出しているコードだ。
この記事で、もっと簡単なサンプルで解説するからマスターすべし!

スクリプトプロパティの登録方法

ここからスクリプトプロパティの使い方を解説します。

さっそく、GASエディタを開きましょう。
そして、左のメニューから、「プロジェクトの設定」をクリックします。

一番下にスライドすると、「スクリプトプロパティを追加」というボタンが出ますので、これをクリックしましょう。
(下図②)

今回はサンプルとして、次のように記載して保存しましょう(下図①②)

これで「”Key”」=「”テストキー”」という関係が保存されます。

スクリプトプロパティを使ってみよう

上記の準備が整ったら、次のコードを書いて実行してみましょう!

function myFunction() {
  
  const testKey = PropertiesService.getScriptProperties().getProperty("Key");

  console.log(testKey);

}

実行ログに「テストキー」と表示されます。

ということで、スクリプトプロパティとして登録しておいた単語を呼び出すことがでました!

コードの解説

スクリプトプロパティに登録した値は、次のコードで抽出することが出来ます。

const testKey = PropertiesService.getScriptProperties().getProperty("Key");

この最後のgetPropertyの引数には、スクリプトプロパティの「プロパティ」欄に登録した文字(:下図参照)を「文字列」として与えます。
つまり、今回の場合は「Key」ではなく「”Key”」として与えます(ダブルクオーテーションまたはシングルクオーテーションで囲みましょう)。

すると、「値」欄に登録していた値を抽出できる、という仕組みです。

ちなみに、この抽出するコードには「プロパティ」という単語が3つ出てくるので、順番などを非常に覚えにくいです。
また、2番目に出てくるgetScriptProperties()については、カッコを付け忘れるというミスが「あるある」です。
このコードは簡単には暗記出来ないので、Notionなどにメモっておくといいと思います。

スクリプトプロパティの使いどころ

スクリプトプロパティは、APIkeyやアクセストークンのような機密情報の類を保存しておくのに非常に便利です。
コードを公開したり配布した時に、オリジナルコードのまま配布が出来ますし、配布時に誤って「消し忘れ」「隠し忘れ」をしてしまう可能性をゼロにすることが出来ます。
(下記が例です。アクセストークン、APIKey、IDなど機密情報はスクリプトプロパティに隠してしまいましょう。)

他にも、GoogleスプレッドシートIDやGoogleドライブのフォルダIDについても同様です。
これらのIDをスクリプトプロパティに保存してもらえれば、オリジナルコードのまま配布できます。

おわりに

あと、生成AIにプログラムコードを教えて貰った時に、いきなりスクリプトプロパティを使ったコードが生成されることがあります。スクリプトプロパティについて全く知識がない状態でこの状態に直面すると、???となってしまいますね。
スクリプトプロパティは一度覚えてしまえば、非常に便利に使える機能ですので、是非この機会に覚えて頂ければと思います。

ではまた会おう!
さらばだ!!
🦅バサバサ~~

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
Contents