以前どこかで、メール通知をしないで、ファイルの共有設定をするGASがあって、大いに参考にさせてもらいました。
メール通知をしないためには、DriveApiを使うんだそうです。
サンプルプログラムでは、Drive API V2を使っていました。
GASのコードエディタで、サービスにDrive APIを追加し、バージョンはV2、IDはディフォルトのDriveを設定して、以下のコードでメール通知なしで、任意のユーザを閲覧者として共有出来ます。
Drive.Permissions.insert(
{
'role': 'reader',
'type': 'user',
'value': '[任意のユーザーのメールアドレス]',
},
[ファイルID],
{
'sendNotificationEmails': 'false', //"false"にすると通知メールを飛ばさない(ミソ)
'supportsAllDrives': 'true' //仕様によりこうしないとFileNotFoundになる。
}
);
今回は、これを、Drive API V3用に書き換えます。
V3では、パラメーターの渡し方が色々あるみたいです。今回は、とりあえず出来たレベルなのでもっと良いコードに出来ると思います。
しかし、V3に対応したコードネット上に見つからなかったため、上げておきます。
まず、GASのコードエディタで、サービスにDrive APIを追加し、バージョンはV3、IDはディフォルトのDriveを設定します。
そして、以下のコードでメール通知なしで、任意のユーザを閲覧者として共有出来ます。
コメントで修正箇所を明記しておきます。
Drive.Permissions.create( // <- insertから変更。
{
'role': 'reader',
'type': 'user',
'emailAddress': '[任意のユーザーのメールアドレス]', // <- valueから変更。
},
[ファイルID],
{
'sendNotificationEmail': 'false', // <- sendNotificationEmailsから変更。
'supportsAllDrives': 'true'
}
);