いきなり結論
GASにて共有ファイルやフォルダのオーナー権限を移譲する際、メール非通知でのオーナー権限移譲はできません。1
DriveのクラスメソッドにsetOwner()
というものがありますが、メールの通知・非通知に関するオプション項目が存在しません。Driveの拡張サービス、Drive API 経由で以下のように設定しても同様です。
/* GASにおけるDriveの拡張サービスでは、執筆時現在Drive API V2となります */
Drive.Permissions.insert({
'role': 'owner',
'type': 'user',
'value': email // 対象ユーザーのemailアドレス
},
id, // ファイルもしくはフォルダのID
{'sendNotificationEmails': false} // 通知送信設定
);
では、非通知にするにはどうすればよいのでしょうか。Drive APIの公式リファレンスには、以下のように明記されています。
Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the role is owner.
(公式リファレンスより)
上記はAPI V2の記述ですが、「設定」はできても無視され、通知されるとあります。V3ではさらに以下のような記述となっています。
Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.
(公式リファレンスより、太字は筆者編集)
いくつかのサイトでsendNotificationEmails
をfalse
に設定することで、オーナー権限移譲時にもメール非通知にすることが可能という記述を見つけましたが、上記より、誤った情報と言えます。
現状、GASによるメール非通知でのオーナー権限移譲は、正攻法ではできないということですね。
[参考]
- Permissions: insert | Google Drive API | Google Developers
- Permissions: create | Google Drive API | Google Developers
-
GAS前提であれば、新オーナー側から自身のマイドライブへ
makeCopy()
し、旧オーナーが元ファイルを削除すれば、表面的には目的を果たせます。 ↩