GASのスクリプトプロパティで躓いた話

1:スクリプトプロパティとは

説明すると長くなるので以下の記事を参照

2:なにで躓いたか

Google FirebaseのFirestoreと連携したサービスを作成中、
セキュリティー面から環境変数となるものを使いたくなりこれに保存した。

保存したのはprivateKeyとEmail。
どちらも保存した値は問題なかったが、なぜか呼び出すと
うまく認証してくれない。

ってことでみんな大好き(((圧 console.logを使って調べた。

3:結論

FirestoreのprivateKeyは、以下のような書式になっている。

-----BEGIN PRIVATE KEY-----\nxxxxxxxxxxxxxx\n-----END PRIVATE KEY-----\n

これをスクリプトプロパティに保存し、呼び出すと

-----BEGIN PRIVATE KEY-----\\nxxxxxxxxxxxxxx\\n-----END PRIVATE KEY-----\\n

となっていた。つまりGoogleの内部システムでは

「\n」という文字列を出力したい
 ↓
「\n」だけだと改行の意になるからバックスラッシュ2つにしないとダメ
 ↓
「\\n」を出力

※個人の偏見と独断が詰まってます

となっていたと思われる。

4:対処

①string.replaceAll()を使う

\\nとして使いたい文字列が混ざってなければ
string.replaceAll("\\n","\n")としてすべて強制的に直す。

②GASを使わない

GASをあきらめる。


この記事が気に入ったらサポートをしてみませんか?