見出し画像

GASのライブラリではまったこと備忘録

共有先でうまく動作しない

複数GASから呼び出せるように単体GASのライブラリを作ったときにはまったこと。

単体GASを作り、スプシのGASからライブラリとして呼び出してみた。
 → 動作♪

共有する予定があったので、別アカウントに切り替えて、同じスプシで実行→「スクリプト実行中」表示のまま・・・・

うまくいかないのでいろいろ試す

単体GASを共有にしてみる → 変わらず ・・・

スプシ共有の権限を変えてみる → 症状変わらず・・・

作成したアカウントに戻って再実行 → 動作する

再度、共有された側に移り、スクリプトエディタを開き、対象の関数を直接実行。
するとこんなエラーが

「ストレージからの読み取り中にサーバーエラーが発生しました。エラーコード: NOT_FOUND。」

 なにいってんだ? サーバーエラー?? NOT_FOUND???

エラーの条件を確認

この不親切なエラーメッセージだけでは意味不明なので、
直接エラーメッセージを貼ってググってみたところ、

次のような条件で発生するとのこと。

  1. V8ランタイムが有効である。

  2. ライブラリにdeveloperモードのものがある。

  3. スクリプトのオーナー以外のユーザーによる実行である。


で、今回はライブラリを使っているので、もしや・・・ということでスクリプトエディタからライブラリをダブルクリックしてみたところ、

バージョン欄が 
「HEAD(開発モード)」
になっていた。

 これかー?

最新バージョンを選択し保存、再実行してみたら・・・

 うまく動作した!

今回の結論

 GASを共有する際、ライブラリを使用している場合はバージョンを開発モードから最新版に変更すること。

 情報が少なく解決に手間取ったので、ここに残しておくことで誰かの役に立てば幸いです。


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