【Google Apps Script】自分がGASで使うIDとかトークンを1つのシートで管理するライブラリを作ろうとしたけど、断念した話

667 語
3 分
【Google Apps Script】自分がGASで使うIDとかトークンを1つのシートで管理するライブラリを作ろうとしたけど、断念した話

はじまり#

リサちゃん avatar
リサちゃん
よし、Google スプレッドシートを使って、IDとかトークンを管理できないかなあ。それを別のスクリプトから呼び出すんだ。
135ml avatar
135ml
えっとねええ、それ、あんまり効果出ないかも・・・
リサちゃん avatar
リサちゃん
うそーん?
135ml avatar
135ml
じゃあ、今回はそのことについて触れてみよう

やりたかったこと#

僕は、Google Apps Scriptで作成するツールに、一つのID管理ライブラリを通じてフォルダやスプレッドシートやその他URLやらを参照させるようにしています。 詳細は、この記事で紹介しています。

しかし、そのやり方だと、IDのキーと値をいちいちスクリプトのコンソール画面を開いて、入力しなければなりません。 その作業が面倒くさかったので、スプレッドシート上で編集できるようにしたのが楽かなと思ったのです。 ツールのイメージはこんな感じです。 「キー」と「値」の列に入力していって、それをスクリプトであーだこーだして、最終的にオブジェクトとして別のライブラリに渡すのです。

しかし、断念・・・#

しかし、程なくして、このプロジェクトは停止することになったのです・・・・ 理由は、スプレッドシートを開いた瞬間にスクリプトを実行してくれる、SImple Triggerというイベントハンドラというものが、Google Apps Scriptには実装されています。 そのSimple Triggerを使えば、スプレッドシートを開いた時に自作のメニューを追加してくれます。(下の画像の「フォルダ作成処理」というのが自作のメニューです。)

しかしながら、このSimple Triggerでスクリプトを実行すると、どうやら一部の機能が権限的な理由で利用できなくなってしまうようなのです。

実際に、今回のスプレッドシートを使ってオブジェクトを渡すためには、SpreadsheetApp.openById()の関数を使用しなければなりません。(getActiveSpreadsheet()的なものを呼び出すと、このID管理ライブラリのシートを参照してしまいます。) 結局、スプレッドシートをonOpen時に読み込んでメニューを表示させる方法としては、スプレッドシート上にボタンを配置して、それを最初にクリックする手段しか思いつきませんでした・・・

実際に、このonOpenをなんとか出来ないものかを四苦八苦した記事が以下のものです。 しかし、どうにもなりませんでした・・・。なんせ、スクリプトが実行されないので・・・。

これが、僕がID管理をスプレッドシート上で行うことを断念するまでの物語でした。 貴方は、同じ轍を踏まないようにお気を付け下さい。 出来たようでしたら、それはそれで方法を教えてもらいたいものです!

おしまい#

リサちゃん avatar
リサちゃん
悲しい・・・スプレッドシートだったら編集が楽なのに・・・
135ml avatar
135ml
こんな権限のトラップがあるとは思わなかったよ・・・
リサちゃん avatar
リサちゃん
他になんか楽にIDをメモっておけるツールとかないかなあ?
135ml avatar
135ml
同じGoogleだったら、GCPのSecret Managerとか? 少しお値段が掛かるけど・・・

以上になります!

記事を共有

この記事が役に立ったなら、ぜひ他の人と共有してください!

【Google Apps Script】自分がGASで使うIDとかトークンを1つのシートで管理するライブラリを作ろうとしたけど、断念した話
https://endorphinbath.com/posts/gas-dropped-managing-token-with-sheet/
著者
kinkinbeer135ml
公開日
2023-02-09
ライセンス
CC BY-NC-SA 4.0
関連記事 スマート
1
【GAS】Googleカレンダーに曜日を指定してスケジュールを登録するスプレッドシートの構築
Code Google Apps Scriptを使い、スプレッドシートからGoogleカレンダーに曜日指定でスケジュールを追加するシステムを作りました。繰り返し入力する版と個別に入力する版があります。
2
【Google Apps Script】onOpen時に「Spreadsheet.openByIdを呼び出す権限がありません」となり、メニューが追加されない
Code onOpenなどのSImple Triggerを使ったスクリプト実行時に、「Spreadsheet.openByIdを呼び出す権限がありません」みたいな権限エラーが発生した時に試したことを紹介します。
3
【GAS、Google Spreadsheet】Googleドキュメントで日記を付けるために毎日Docファイルを作ってくれるスクリプトです
Code GoogleDriveにあるファイルを毎日決まった時間にコピーしてくれるスクリプトを書きました。日記をつける場合に毎回ファイルをコピーしてレイアウトを変えて・・・といった作業を効率化してしまいましょう!
4
【GAS】Googleスプレッドシートではテーマカラーが変えられる! SpreadsheetThemeクラスをいじってみる
Software あなたはGoogleスプレッドシートではテーマカラーを変えられるって知っていましたか?デフォルトで用意されているテーマは16種類あるようなので全部試してみました。
5
【GAS、Google Spreadsheet】ブログに使用した画像をGoogleドライブで管理するために書いたスクリプト
Code 僕は、既に公開した記事で使用したファイルをGoogleドライブの所定のフォルダに保存しています。その画像を完了済みのフォルダに定期的に移動してくれるスクリプトを作りました。
ランダム記事 ランダム
Profile Image of the Author
kinkinbeer135ml
SIerをやめて、プログラミングを勉強しています。※Amazonアソシエイトに参加しています。
お知らせ
私のブログへようこそ!これはサンプルのお知らせです。
音楽
カバー

音楽

再生中なし

0:00 0:00
歌詞なし
カテゴリ
タグ
サイト統計
記事
287
カテゴリー
8
タグ
93
総文字数
486,174
運用日数
0
最終活動
0 日前

目次