IMPORTRANGE を使用して、あるスプレッドシートから別のスプレッドシートからデータを抽出する権限を削除します
P粉511985082
P粉511985082 2024-03-30 23:27:35
0
1
641

with IMPORTRANGE SpreadSheet A、B、C など SpreadSheet 1 (図 1) からデータを抽出するためのアクセスを要求します。例: ### リーリー

スプレッドシート A からデータを抽出するために、 スプレッドシート A からアクセス権を削除 (権限を取り消し) したい (図 2) 許可を取り消すには、図 1 に許可されているアクセス権を取り消します SpreadsheetA Spreadsheet1

からデータを抽出する権限

これは単なる単純化された例です。実際には 200 を超えるスプレッドシートが 1 つ (実際には 2 つ) のデータベース スプレッドシートに接続されているため、アクセス許可を取り消したいのです。アクセスできるスプレッドシートの数。スプレッドシートでこの制限に何度も達しました。

コードの一部を理解するのに役立つ実際のスプレッドシートの画像。スクリプトはアクセスを要求したのと同じスプレッドシート上で実行されます

間違っている可能性もありますが、かつては機能したと思われる古いスクリプトがあります

リーリー

しかし、今度はエラーが表示されますTypeError: targetFile.getPermissions は関数ではありません

それで、私が検索したものでそれを変更しようとしました

リーリー

合格しましたが、機能しません

この状況でエディターがどのように機能するのか正確にはよくわかっておらず、検索しても関連する質問や解決策が見つかりません。

私は所有者で唯一のユーザーです。よくわかりませんが、ユーザーではなくファイルに関連しています。助けていただきありがとうございます。

P粉511985082
P粉511985082

全員に返信(1)
P粉976737101

あなたの目標は次のとおりだと思います。

  • 承認された IMPORTRANGE 関数を含む Google スプレッドシートがあります。
  • IMPORTRANGE のスプレッドシートから複数の承認を取り消したいと考えています。

問題と解決策:

Spreadsheet の IMPORTRANGE 権限を直接解除する方法を確認してください。残念ながらその方法は見つかりません。ただし、エンドポイントを使用する場合、承認プロセスをスクリプトによって実行できることはすでにわかっています。 参照 これはあなたの場合の回避策として機能する可能性があると思います。この回避策の流れは以下の通りです。

  1. 元のスプレッドシートをコピーします。
  2. Authorization IMPORTRANGE (取り消したいスプレッドシートを除く)。

このプロセスに従って、必要な特定のスプレッドシートを取り消して Google スプレッドシートを取得します。

ただし、この回避策では、元のスプレッドシートがコピーされているため、スプレッドシート ID は元の ID とは異なります。したがって、これが実際の状況で役立つかどうかはわかりません。したがって、私はこの回避策を提案しているだけです。

上記の処理をサンプルスクリプトに反映すると以下のようになります。

サンプルスクリプト:

次のスクリプトをコピーして元のスプレッドシートのスクリプト エディターに貼り付け、spreadsheetIdsOfdeletePermission を設定してスクリプトを保存してください。

リーリー
  • このスクリプトを実行すると、元のスプレッドシートがコピーされ、「IMPORTRANGE」の特定の権限を取り消すことによって新しいスプレッドシートが作成されます。
###知らせ:###

残念ながら、あなたの実際の状況を理解することができません。したがって、連続したリクエストに関連してエラーが発生した場合は、
    UrlFetchApp.fetchAll
  • の代わりに UrlFetchApp.fetchUtilities.sleep を使用したループで使用する必要がある場合があります。
  • 参考文献:

    アプリケーション スクリプトを通じて importrange 関数へのアクセスを許可するにはどうすればよいですか?
  • fetchAll(リクエスト)
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート