4

スプレッドシートにアクセスしてスクリプトで使用するAppsScriptライブラリを作成すると、アクセス許可エラーが発生します(次の例のsetValueの場合)。スクリプトで同じスプレッドシート関数を一度呼び出して(その後削除して)、ライブラリ関数を呼び出すと、パーミッションエラーが二度と発生しなくなります(再現可能です)。

あなたはそのような行動を経験したことがありますか?もしそうなら、どのようにこの問題を解決しましたか?

ありがとう

図書館

function addRecord(ss, sheetName) {
  var sheet = ss.getSheetByName(sheetName);
  sheet.getRange("A1:A1").setValue("Hello World!");
}

スクリプト

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  MyLib.addRecord(ss, "Sheet1");
}

エラーメッセージ
「setValueを呼び出すために必要な権限がありません」

4

2 に答える 2

3

スクリプトには、ライブラリが持つ必要があるのと同じ認証が必要です。ライブラリがスプレッドシートやカレンダー(またはその他)を読み書きすることがわかっている場合は、これらのサービスのスクリプトを認証する必要があります。これは、必要なサービスの承認プロセスを呼び出すようにシステムに指示するいくつかの(ダミーの)関数を使用して非常に簡単に行うことができます。あなたの説明から、スクリプトを保存するときにシステムがライブラリ内にあるものをチェックしないので、スクリプトが許可なくスプレッドシートに書き込むのは一種の「驚き」だと思います。前に述べた(ダミーの)呼び出しを含めると、スクリプトはあなたが何をしようとしているのかを認識し、最初の実行の試行で認証を要求します。

私が十分に明確であることを願っています。

于 2012-10-08T22:16:51.987 に答える
2

これを閉じるために-Stefanによって報告された問題は問題として確認されました。これを調査しています。渡されたスプレッドシートへのアクセス許可がライブラリによって正しく吸収されていません。

ステファン-必要に応じて、課題追跡システムに関するレポートを作成してください。

于 2012-10-16T16:13:01.977 に答える