Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Share a Drive document without notifying user with Google Apps Script

I am creating a workflow process in Apps Script where a Doc is generated from a template and shared with various users for approval. The Script sends a customised email notifying a user that the document requires their approval but they also receive a second email at each stage in the process from the user whose Drive the document is stored in saying "User has shared a document with you". Is there any way of disabling these alerts? When you share a document manually from your Drive, there is a checkbox option that allows you to choose whether or not the user receives a notification. However, I cannot find a way to disable this notification with Apps Script.

I am using doc.addEditors(users) to share the document.

Many Thanks

like image 393
StuWatson Avatar asked Jan 17 '14 15:01

StuWatson


2 Answers

Another option would be to use the Drive advanced service (which you should enable in the Resources menu in the Script Editor).

The code used should be

Drive.Permissions.insert(
   {
     'role': 'writer',
     'type': 'user',
     'value': '[email protected]'
   },
   fileId,
   {
     'sendNotificationEmails': 'false'
   });
like image 188
Rodrigo Chiong Avatar answered Sep 21 '22 09:09

Rodrigo Chiong


There is a simple solution if you are working with Google Docs or Google SpreadSheets. You can use DocumentApp or SpreadSheetApp to share your Docs or SpreadSheets without email notification:

DocumentApp

var doc = DocumentApp.openById('124144')
doc.addEditor('[email protected]').addViewer('[email protected]')

SpreadSheetApp

var spreadSheet = SpreadsheetApp.openById('124144')
spreadSheet.addEditor('[email protected]').addViewer('[email protected]')

However, if you are working with documents that aren't Docs or SpreadSheets, you must share then using DriveApp and email notification will be send.

like image 42
maeq Avatar answered Sep 20 '22 09:09

maeq