with IMPORTRANGE SpreadSheet A、B、C など SpreadSheet 1 (図 1) からデータを抽出するためのアクセスを要求します。例: ### リーリー
スプレッドシート A からデータを抽出するために、 スプレッドシート A からアクセス権を削除 (権限を取り消し) したい (図 2) 許可を取り消すには、図 1 に許可されているアクセス権を取り消します SpreadsheetA Spreadsheet1
からデータを抽出する権限これは単なる単純化された例です。実際には 200 を超えるスプレッドシートが 1 つ (実際には 2 つ) のデータベース スプレッドシートに接続されているため、アクセス許可を取り消したいのです。アクセスできるスプレッドシートの数。スプレッドシートでこの制限に何度も達しました。
コードの一部を理解するのに役立つ実際のスプレッドシートの画像。スクリプトはアクセスを要求したのと同じスプレッドシート上で実行されます
間違っている可能性もありますが、かつては機能したと思われる古いスクリプトがあります
リーリーしかし、今度はエラーが表示されますTypeError: targetFile.getPermissions は関数ではありません
それで、私が検索したものでそれを変更しようとしました
リーリー合格しましたが、機能しません
この状況でエディターがどのように機能するのか正確にはよくわかっておらず、検索しても関連する質問や解決策が見つかりません。
私は所有者で唯一のユーザーです。よくわかりませんが、ユーザーではなくファイルに関連しています。助けていただきありがとうございます。
あなたの目標は次のとおりだと思います。
IMPORTRANGE
関数を含む Google スプレッドシートがあります。IMPORTRANGE
のスプレッドシートから複数の承認を取り消したいと考えています。問題と解決策:
Spreadsheet の
IMPORTRANGE
権限を直接解除する方法を確認してください。残念ながらその方法は見つかりません。ただし、エンドポイントを使用する場合、承認プロセスをスクリプトによって実行できることはすでにわかっています。 参照 これはあなたの場合の回避策として機能する可能性があると思います。この回避策の流れは以下の通りです。IMPORTRANGE
(取り消したいスプレッドシートを除く)。このプロセスに従って、必要な特定のスプレッドシートを取り消して Google スプレッドシートを取得します。
ただし、この回避策では、元のスプレッドシートがコピーされているため、スプレッドシート ID は元の ID とは異なります。したがって、これが実際の状況で役立つかどうかはわかりません。したがって、私はこの回避策を提案しているだけです。
上記の処理をサンプルスクリプトに反映すると以下のようになります。
サンプルスクリプト:
次のスクリプトをコピーして元のスプレッドシートのスクリプト エディターに貼り付け、
リーリーspreadsheetIdsOfdeletePermission
を設定してスクリプトを保存してください。UrlFetchApp.fetchAll-
参考文献:
の代わりに
UrlFetchApp.fetch
をUtilities.sleep を使用したループで使用する必要がある場合があります。
アプリケーション スクリプトを通じて importrange 関数へのアクセスを許可するにはどうすればよいですか?-
fetchAll(リクエスト)-