私はGoogleフォームを作成したGoogleスプレッドシートを持っています。スプレッドシートには2つのシートがあります.1つはフォーム応答で、もう1つは設定データです。スプレッドシートには、コンフィグレーションデータを使用してAPI呼び出しを行う、フォームレスポンスで起動されるAppsスクリプトスクリプトが添付されています。このスクリプトは、私が望むのと全く同じように動作します。AppsスクリプトからGoogleフォームにアクセスすると、同じGoogleスプレッドシートに結び付けられます
フォームの質問のいずれかの選択肢を更新しようとするスプレッドシートチェンジトリガスクリプトを作成しました。ただし、FormApp.openByIdまたはFormApp.openByUrlを使用すると、「呼び出す権限がありません...」というエラーが発生します。
スプレッドシートを変更するスクリプトのアクセス許可をフォームに与える方法はありますか?
私はここで必要なものに対してより良い設定があります:フォームの応答に基づいて、フォームとスクリプトの間で情報の同期を保つようにします。
コード:
function onEdit(e) {
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Do some work to get the configuration data. This works fine.
// Now try to get access to the form to update it
var responseSheet = activeSpreadsheet.getSheetByName('Form Responses');
// var form = FormApp.getActiveForm(); // returns null
var form = FormApp.openByUrl(responseSheet.getFormUrl());
...
}
最終ラインがで失敗します。
実行に失敗しました:あなたはopenByUrl
サンプルコードを投稿してください – Kos
あなたはGoogleアカウントでスクリプトを承認しました。このアカウントには、開こうとしているフォームを編集するための適切な権限があることを確認してください。このエラーは、アカウントの権限が不十分であるという考えを示しています。 – Casper
いくつかのコードを追加しました@Kos –