質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

3426閲覧

GAS:Drive API で 「Insufficient permissions for this file」エラーが出るようになった

stcamp

総合スコア13

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2021/06/11 01:28

編集2021/06/12 07:12

前提・実現したいこと

Google Workspace環境下で、指定のファイルを削除し、新規ファイルを生成します。
(ゴミ箱移動ではなく、完全に削除するため、Drive API V.2 を使用しています)
現象を確認したのは2021/6/10の昼以降です。
それまでは正常動作していました。

  • 自身がオーナーであるファイルに関しては何度かエラーが出ることがあったが現在は正常動作
  • 自身にオーナー権限がないファイルは常に以下のエラーメッセージが出る

StackOverflowで探してみましたが、私には同様のトラブル報告を見つけられませんでした。
オーナー権限の有無が関連していると思いますが、先述の通り、それまでは正常に機能していました。
別環境(共有外の別アカウント、別人)でプロジェクトをコピーしたものを開発・テスト用に走らせていますが、同様の現象が発生します。
私が使用している環境はテスト環境より一つ古いバージョンのスクリプトです。
もちろん、「正常動作していた」と勘違いしていることも否めませんが、
これまでに様々なケースでテストしており、同様の報告や現象は確認していません。
リファレンスよりファイルのオーナー権限は必要条件ではないという解釈です。

Permanently deletes a file by ID. Skips the trash. The currently authenticated user must own the file or be an organizer on the parent for shared drive files. Try it now or see an example.
Drive API v2 Files:delete より

原因についてわかる方がいらっしゃいましたら、ご回答いただけましたら幸いです。

発生している問題・エラーメッセージ

次のエラーが発生し、drive.files.delete の呼び出しに失敗しました: Insufficient permissions for this file

該当のソースコード

Javascript:sample.gs

1function hoge(){ 2 const id = '削除対象ファイルのID'; 3 Drive.Files.remove(id); 4 // 以降、新規生成処理 5}

試したこと

  • バックアップしてあった過去のバージョン(数種類)のスクリプトに差し替えて実行
  • 共有ユーザーのドライブのゴミ箱を手動で削除
  • Drive API v2 の Try this API でも同様の結果

補足情報

Permanently deletes a file owned by the user without moving it to the trash. If the file belongs to a shared drive the user must be an organizer on the parent. If the target is a folder, all descendants owned by the user are also deleted.

Drive API v3 Files:delete より

Drive API v3ではオーナー権限が必要条件に変更されています。
v2のdeleteを指定しているにも関わらず、v3のdeleteが実行されているという印象です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

根本的な解決はしていませんが、こちらでも回答は得られないと思いますので、
運用ルールを変更することで対応しました。

運用専用アカウントを作成し、ファイルの生成や削除はそちらのアカウント上で行うようにしました。
具体的には運用アカウントにてインストーラブルトリガーを設定することで、オーナー権限の固定をする、ということになります。

投稿2021/06/21 08:55

stcamp

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問