0

そう

このエラーが発生しています

おっと、クエリを呼び出す権限がありません (7 行目)

Google スプレッドシート アプリ スクリプト内の onEdit() 関数で ScriptDB データベースにクエリを実行しようとすると、. 以下は、繰り返しエラーを取得するために使用するコードです。

function onEdit(){
  //tell me event has happened
  Browser.msgBox("onEdit() Fired")
  //get ScriptDB reference
  var db = ScriptDb.getMyDb();
  //perform any query
  var results = db.query({})
}

onEdit() を notonEdit() に置き換えると、手動でトリガーしたときに期待どおりに動作します。

function notonEdit(){
  //tell me event has happened
  Browser.msgBox("notonEdit() Fired")
  //get ScriptDB reference
  var db = ScriptDb.getMyDb();
  //perform any query
  var results = db.query({})
}

私が正しく設定していない何らかの権限がありますか、それとも ScriptDB クエリは設計上、イベント関数で機能することが許可されていませんか? 他の誰かがこの問題を見ていますか?

トム

4

2 に答える 2

0

スクリプトを onEdit トリガーにアタッチする方法は 2 つあります。(1) 関数に onEdit という名前を選択するか、(2) スクリプト エディターで [Resources] > [Current Script's Triggers] に移動し、notonEdit/From Spreadsheet/On edit を追加します。(2) 大丈夫でしょう。(1) と (2) の違いについては、ガイドを参照してください。

于 2012-07-22T22:31:17.603 に答える
0

私が正しく設定していない何らかの権限がありますか、それとも ScriptDB クエリは設計上、イベント関数で機能することが許可されていませんか?

後者だと思います。いわゆる単純なトリガーは、アクティブなユーザーとして実行されるため、アクセスできるものが多少制限されます。この制限がなければ、かなり大きなセキュリティ ホールが発生します。

于 2012-07-22T22:33:57.600 に答える